请考虑我的“A / B”xPath表达式返回以下节点
<Q ID="12345">
----
----
</Q>
这是我的变量
这就是我试图为tempVariable变量赋值的方法
<xsl:for-each select="A/B">
<xsl:variable name="tempVariable"><xsl:value-of select="@ID"/></xsl:variable>
</xsl:for-each>
毕竟我正在尝试使用这个变量
<xsl:if test="$tempVariable='12345'">
....
....
</xsl:if>
但据我所知,我得到$ tempVariable =“”这是不正确的。
有人可以告诉我我在哪里做错了,或者我怎么能以正确的方式做到这一点。 谢谢。
答案 0 :(得分:5)
为什么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>
不需要for-each
。