Как оценить XSL-построенное выражение XPath - PullRequest
3 голосов
/ 05 марта 2012

Хум ...

<xsl:value-of select="$document/@*[name() eq $attrName]"/>

кажется решением ... С уважением, Кристоф

У меня есть переменная, которая содержит имя атрибута для запроса.Как я могу написать такое выражение XPath?Вот пример того, что я хотел бы сделать

<xsl:variable name="attrName" select="$config//conf:document[@id=$docId]/@archive-ventil-attr"/>
<xsl:value-of select="$document/@{$attrName}"/>

Я использую XSLT 2.0

Заранее большое спасибо, Кристоф

1 Ответ

2 голосов
/ 05 марта 2012

С полным выражением XPath вам потребуется функция оценки, которая в XSLT 1.0 и 2.0 доступна только в качестве расширения, см. http://www.saxonica.com/documentation/extensions/functions/evaluate.xml (которая также предполагает, что XSLT 3.0 получает инструкцию xsl:evaluate).

Пока у вас просто есть строка с локальным именем, достаточно использовать <xsl:value-of select="$elements/@*[local-name() = $attrName]"/>.Предполагается, что $elements является набором узлов (XPath 1.0) или последовательностью (XPath 2.0) узлов элементов.

...