我正在尝试评估我基于节点位置动态构建的XPath varable。
我可以在变量中创建XPath字符串,但是当我选择它的值时,只需获取字符串而不是我需要的节点集。
我使用以下命令创建XPath查询。
<xsl:variable name="xpathstring"
select="normalize-space(concat("//anAttribute[@key='pos",position(),"']"))"/>
尝试使用以下内容输出值。
<xsl:value-of select="$xpathstring"/>
如果我在调试器中执行XPath查询,我会获得节点集,但在我的XML输出中只获取看起来像//anAttribute[@key='pos1']
的XPath字符串。
我看了exslt dyn:evaluate
这似乎启用了这个,但这似乎只有某些处理器支持,并没有提供独立的实现或至少我能看到(目前使用标准)据我所知,.NET 2.0 XSLT只是XSLT 1.0。)
有没有办法在不改变处理器的情况下处理这个问题?
答案 0 :(得分:1)
为什么不使用参数而不是串联:
<xsl:param name="pos">
<xsl:text>pos</xsl:text>
<xsl:value-of select="position()"/>
</xsl:param>
<xsl:value-of select="//anAttribute[@key=$pos]"/>