2010-03-23 82 views
2

一些特定的价值如何检查标签存在和值是“开”做XSL东西验证一个元素是否存在,并在XSL

请指正。,

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

//do something 

</xsl:if> 

才能跳过检查标签是否存在并直接检查值。

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

    //do something 

    </xsl:if> 

是一个正确的做法,

+0

好问题(+1)。查看我的答案以获得完整的解释。 :) – 2010-03-23 13:37:56

回答

3

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

上面是多余的,因为如果$status='On'然后$status布尔值是真实的。

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

这完全回答了问题

在我看来,你想测试是否$status定义,然后测试其值。这是不正确的 - 如果对未定义的xsl:变量进行引用,则按照W3 XSLT规范引发错误。

+1

@flash中得到任何空的模糊或者什么:你的问题“检查标签是否存在,值是'On'”也可能意味着'$ status'是你想检查的元素的*名称,而不是实际的字符串值。如果是这种情况,请使用''。 – Tomalak 2010-03-24 20:13:43

2

你应该使用XPath表达式

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

</xsl:if> 

或$状态的XSL PARAM?

+0

是$状态是一个xml PARAM – flash 2010-03-23 09:45:44

+0

随后的 //做点什么 是正确 – Ivo 2010-03-23 10:55:35

+0

是没有必要检查是否 '状态'存在使用'$状态' – flash 2010-03-23 11:42:39

相关问题