请考虑我的“ A / B” xPath表达式返回以下节点
<Q ID="12345">
----
----
</Q>
Run Code Online (Sandbox Code Playgroud)
这是我的变量
这就是我试图为tempVariable变量分配值的方式
<xsl:for-each select="A/B">
<xsl:variable name="tempVariable"><xsl:value-of select="@ID"/></xsl:variable>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
毕竟,我试图使用此变量
<xsl:if test="$tempVariable='12345'">
....
....
</xsl:if>
Run Code Online (Sandbox Code Playgroud)
但是据我了解,我在这里得到了$ tempVariable =“”,这是不正确的。
有人可以告诉我我做错了什么,或者如何以正确的方式做这件事。谢谢。
为什么像这样的路径会A/B选择一个Q元素?如果要使用变量,则需要确保它在范围内。您在样本中显示的变量xsl:for-each位于xsl:variable元素后的范围内。
如果您想在外部使用变量,则for-each需要在外部进行声明for-each。
但是我认为你可以做
<xsl:variable name="v1" select="A/B/@ID"/>
<xsl:if test="$v1 = '12345'">..</xsl:if>
Run Code Online (Sandbox Code Playgroud)
不需要for-each。