Я видел аналогичный вопрос о создании карты.Использование карты в XSL для расширения аббревиатур
Этот ответ имеет следующий код:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:template match="/">
<xsl:variable name="map">
<map>
<entry key="key-1">value1</entry>
<entry key="key-2">value2</entry>
<entry key="key-3">value3</entry>
</map>
</xsl:variable>
<output>
<xsl:value-of select="msxsl:node-set($map)/map/entry[@key='key-1']"/>
</output>
</xsl:template>
Я хотел бы заменить команду вывода использовать значение в моей XML, чтобы увидеть, если он является одним из ключевых на карте, а затем заменить его со значением.
Это лучший способ сделать выбор для каждого на карте и сравнить с ним?
Вот отрывок из XML:
значение узла<document>
<content name="PART_DESC_SHORT" type="text" vse-streams="2" u="22" action="cluster" weight="1">
SCREW - ADJUST
</content>
</document>
Содержание может иметь строку, содержащую аббревиатуру, которую я хочу заменить на полную стоимость.
Спасибо, Пол
Мне нужно найти все ключи и найти, содержится ли ключ в пределах этого значения узлов. Поэтому, если у узла есть: «Brkt Pivot R» измените его на «Bracket Pivot R» –
Если у вас лучший пример (XML-документ и соответствующий желаемый результат), я мог бы помочь. –
@DimitreNovatchev Некоторые аббревиатуры составляют всего 2 буквы типа «Br». Я фактически использую EXSLT, а не Microsoft. Я заметил, что у них есть функция toikenize.Строка PART_DESC_SHORT должна быть обозначена пробелом и применять расширение аббревиатуры для точного соответствия, а не содержать. Я попробовал оба решения ниже. –