如何评估XSL构造的XPath表达式

时间:2012-03-05 10:50:50

标签: xslt xslt-2.0

...姆

<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 个答案:

答案 0 :(得分:2)

使用完整的XPath表达式,您需要一个在XSLT 1.0和2.0中仅作为扩展提供的evaluate函数,请参阅http://www.saxonica.com/documentation/extensions/functions/evaluate.xml(这也表明XSLT 3.0获得了xsl:evaluate指令)。 / p>

只要您拥有一个包含本地名称的字符串,就可以使用<xsl:value-of select="$elements/@*[local-name() = $attrName]"/>。这假定$elements是元素节点的节点集(XPath 1.0)或序列(XPath 2.0)。