7

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

有人可以告诉我我在哪里做错了,或者我该如何以正确的方式做到这一点。谢谢你。

4

1 回答 1

7

为什么像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

于 2013-05-13T16:26:55.130 回答