Я довольно новичок в xslt, но я просмотрел темы, чтобы выяснить, есть ли для меня совпадение, но так как я не могу понять большую часть языка, я не могу найти их полезными.
* 1002Вот то, чего я пытаюсь достичь.По сути, я хочу пользовательскую функцию, которая может объединить строку с путем к узлу и вернуть значение элемента без совпадения шаблона.Может быть, вы можете привести пример кода функции, который может это сделать, и я могу просмотреть его.
В основном я хочу передать узел </root/AccountDetails/plantype>
функции, подобной <xsl:value-of select=”testlang(/root/AccountDetails/plantype)”/>
В функции она выполнит языковой тест и вернет значение элемента узла (обратите внимание, что много английских и французских узлов вложено в разные уровни), поэтому я прохожу весь путь.Я ограничен XSLT 1.0 и не могу изменить переданный XML
Пример XML
<root>
<AccountDetails>
<plantype>RRSP</plantype>
<plantype_fr>CELI</plantype_fr>
</AccountDetails>
<ClientDetails>
<salutation>Mr.</salutation>
<salutation_fr>Monseiur</salutation_fr>
</ClientDetails>
<lang>fr</lang>
</root>
Возможный код функции
<xsl:function name=”testlang”>
<xsl:param name=”str”/>
<xsl:choose>
<xsl:when test=”/root/lang[.=’fr’]>
<xsl:value-of select=”concat($str,’_fr’)”/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select=”$str”/>
</xsl:otherwise>
</xsl:choose>
</xsl:function>