В моей таблице стилей XSLT я хочу присвоить объект документа XML глобальной переменной. Имя XML-документа меняется так, что назначение должно быть условным. Имена разных XML-документов выглядят следующим образом: screenlabels0.xml, screenlabels1.xml и т. Д. Число в этих именах равно значению параметра ui_language, переданного в таблицу стилей. До тех пор, как я жесткий код уступки следующим образом, это работает отлично:XSLT условное присвоение переменной документа XML
<xsl:variable name="screenlabels" select="document('..\xslt\screenlabels1.xml')"/>
Позже в таблице стилей я могу обратиться узлами из этого объекта через Xpath начиная с $ screenlabels (нет необходимости применять набор узлов к нему). Любая попытка условно разрешить это пока не удалась. Сначала я заметил, что следующий код, по-видимому, не совпадает с одной строки кода выше:
<xsl:variable name="screenlabels">
<xsl:value-of select="document('..\xslt\screenlabels1.xml')"/>
</xsl:variable>
Кажется, я не могу решить эту переменную таким же образом, ни после применения набора узлов к нему. Изменение значения для копий также не помогает. Условный вариант выше, используя конструкцию выбора, не работает, конечно. Мой альтернативный подход просто использовать параметр ui_language в однострочном присваивании, как показано ниже, тоже не работает. Кто-нибудь знает, как это сделать, или я был неаккуратным в своем тестировании? Ваша помощь будет очень признательна.
<xsl:variable name="screenlabels" select="document('..\xslt\screenlabels{$ui_language}.xml')"/>
Отлично! Ваше решение работает как шарм. Огромное спасибо! – Erik