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

3
我正在尝试评估一个基于节点位置动态构建的XPath变量。我可以在变量中创建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输出中,我只会得到XPath字符串,它看起来像这样//anAttribute[@key='pos1']
我查看了exslt dyn:evaluate,它似乎可以实现这一点,但这似乎只受某些处理器支持,并且没有提供独立的实现,至少在我看来(目前使用标准的.NET 2.0 XSLT,只有我回想起来的XSLT 1.0)。
有没有办法在不更改处理器的情况下处理这个问题?
1个回答

1
为什么不使用参数而是使用连接符呢?
<xsl:param name="pos">
    <xsl:text>pos</xsl:text>
    <xsl:value-of select="position()"/>
</xsl:param>
<xsl:value-of select="//anAttribute[@key=$pos]"/>

谢谢,这很好用。我之前一直试图从xpath字符串中直接获取它的工作方式,但是这个方法很好用。 - Crocked

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接