是否可以使用.NET2.0XSLT实现动态计算XPath变量字符串?
我试图根据节点的位置动态地评估我正在构建的变量 我可以在变量中创建XPath字符串,但是当我选择这个值时,只获取字符串,而不是我需要的节点集 我使用以下内容创建XPath查询是否可以使用.NET2.0XSLT实现动态计算XPath变量字符串?,.net,xslt,xpath,.net,Xslt,Xpath,我试图根据节点的位置动态地评估我正在构建的变量 我可以在变量中创建XPath字符串,但是当我选择这个值时,只获取字符串,而不是我需要的节点集 我使用以下内容创建XPath查询 <xsl:variable name="xpathstring" select="normalize-space(concat("//anAttribute[@key='pos",position(),"']"))"
<xsl:variable name="xpathstring"
select="normalize-space(concat("//anAttribute[@key='pos",position(),"']"))"/>
并尝试使用以下命令输出值
<xsl:value-of select="$xpathstring"/>
如果在调试器中执行XPath查询,则会得到节点集,但在XML输出中只会得到XPath字符串,如下所示//anaAttribute[@key='pos1']
我看了一下exslt-dyn:evaluate
,它似乎启用了这一功能,但这似乎只受某些处理器的支持,并且没有提供独立的实现,至少在我看来是这样的(目前使用的是标准的.NET 2.0,据我回忆,它只是XSLT 1.0)
有没有办法在不更改处理器的情况下处理此问题?为什么不使用参数而不是串联:
<xsl:param name="pos">
<xsl:text>pos</xsl:text>
<xsl:value-of select="position()"/>
</xsl:param>
<xsl:value-of select="//anAttribute[@key=$pos]"/>
销售时点情报系统
谢谢,这样很好。我试图直接从xpath字符串让它工作,但这很好。