XSLT中的变量如何声明,赋值并在同一个XSLT中的不同位置使用该变量

时间:2013-05-13 16:19:18

标签: variables xslt

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

有人可以告诉我我在哪里做错了,或者我怎么能以正确的方式做到这一点。 谢谢。

1 个答案:

答案 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