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

Xml 验证元素是否存在并且在xsl中是否具有特定值,xml,xslt,xpath,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> //做点什么 这是一种正确的做法。您应该

如何检查标记是否存在以及值是否为“On”在xsl中执行某些操作

请纠正我

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

 //do something

</xsl:if>

//做点什么
我们可以跳过检查标记是否存在,直接检查值吗

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

     //do something

    </xsl:if>

//做点什么

这是一种正确的做法。

您应该使用xpath表达式

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

</xsl:if>

或者$status是xsl参数吗?

上述内容是多余的,因为如果
$status='On'
$status
的布尔值为真

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

这完全回答了问题


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

然后//执行某些操作是正确的。不需要使用“$status”检查“status”是否存在,这是不需要的。xsltGood问题(+1)中不会出现任何空的异常或其他内容。有关完整的解释,请参见我的答案。:)@flash:您的问题“检查标记是否存在且值是否为‘开’”,也可能意味着
$status
是要检查的元素的名称,而不是实际的字符串值。如果是这种情况,请使用