Используйте переменную XSLT в качестве имени поля - PullRequest
2 голосов
/ 24 марта 2009

У меня есть переменная XSLT, которую я создаю и заполняю значением атрибута в верхней части таблицы стилей, например ...

    <xsl:variable name="MyAttributeValue" select="/Source/Fields/Field[@SpecialAttribute]/@MyAttributeValue" />

Позже в процессе обработки я хочу использовать $ MyAttributeValue в качестве имени поля , как я мог бы использовать жестко закодированную строку. Например:

<xsl:value-of select="MyField"/>

Это правильно вернет значение MyField в XML во время обработки XSLT. Я хочу использовать переменную, которую я определил ранее, чтобы сделать это. Например:

<xsl:value-of select="$MyAttributeValue"/>

Итак, $ MyAttributeValue содержит «MyField», но я хочу, чтобы значение *1014**1015* MyField в XML отображалось вместо буквального текста «MyField» при использовании переменной.

Как это можно сделать?

Спасибо!

1 Ответ

1 голос
/ 24 марта 2009
<xsl:value-of select="*[local-name() = $MyAttributeValue]" />

вернет каждый узел дочернего элемента с именем, равным содержимому $MyAttributeValue.

Если ваша переменная содержит имя, уточненное в пространстве имен, например "foo:MyField", используйте вместо этого функцию name():

<xsl:value-of select="*[name() = $MyAttributeValue]" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...