XSLT中的变量如何在同一XSLT中的不同位置声明,分配值和使用该变量

Jag*_*ghe 6 xslt variables

请考虑我的“ 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 =“”,这是不正确的。

有人可以告诉我我做错了什么,或者如何以正确的方式做这件事。谢谢。

Mar*_*nen 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>
Run Code Online (Sandbox Code Playgroud)

不需要for-each