验证元素是否存在并且在xsl中具有某些特定值

时间:2010-03-23 08:27:16

标签: xml xslt xpath

如何检查标签是否存在且值为“On”在xsl

中执行某些操作

请纠正我。

<xsl:if test="$status and $status='On'">

 //do something

</xsl:if>

我们可以跳过检查标签是否存在并且直接检查该值。

<xsl:if test="$status='On'">

     //do something

    </xsl:if>

这是一种正确的做法。

2 个答案:

答案 0 :(得分:3)

<xsl:if test="$status and $status='On'">

以上是多余的,因为如果$status='On'那么$status的布尔值为真。

因此,上述xslt指令的@test属性中包含的表达式仅相当于:$status='On',它更短。

这完全回答了问题

在我看来,您想测试$status 是否已定义,然后测试其值。这是不正确的 - 如果引用未定义的xsl:变量,则会根据W3 ​​XSLT规范导致错误。

答案 1 :(得分:2)

你应该使用xpath表达式

<xsl:if test="/path/node = 'On'">

</xsl:if>

或者是$ status是xsl param?