是否可以使用.NET 2.0 XSLT实现动态评估XPath变量字符串?

时间:2010-03-13 12:09:26

标签: .net xslt xpath

我正在尝试评估我基于节点位置动态构建的XPath varable。

我可以在变量中创建XPath字符串,但是当我选择它的值时,只需获取字符串而不是我需要的节点集。

我使用以下命令创建XPath查询。

<xsl:variable name="xpathstring" 
              select="normalize-space(concat(&quot;//anAttribute[@key='pos&quot;,position(),&quot;']&quot;))"/>

尝试使用以下内容输出值。

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

如果我在调试器中执行XPath查询,我会获得节点集,但在我的XML输出中只获取看起来像//anAttribute[@key='pos1']的XPath字符串。

我看了exslt dyn:evaluate这似乎启用了这个,但这似乎只有某些处理器支持,并没有提供独立的实现或至少我能看到(目前使用标准)据我所知,.NET 2.0 XSLT只是XSLT 1.0。)

有没有办法在不改变处理器的情况下处理这个问题?

1 个答案:

答案 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]"/>