当某个属性缺失或为空时,我希望我的变量设置为false()
。
XML:
<cd name="One" />
<cd name="Two" incollection=""/>
<cd name="Three" incollection="true"/>
XSL:
<!-- this will only set to false when attribute is missing -->
<xsl:variable name="incollection" select="boolean(@incollection)"/>
<!-- this will set to false both when attribute is missing or is empty-->
<xsl:variable name="incollection2" select="boolean(@incollection) or @incollection=''"/>
虽然第二个表达对我有用,但我想知道是否有更好,更惯用的方式来编写这个表达式?
答案 0 :(得分:2)
使用强>:
string-length(@incollection) > 0
如果要排除字符串值仅为空格的属性,请使用:
string-length(normalize-space(@incollection)) > 0
答案 1 :(得分:1)
我个人倾向于尝试类似
的东西 select="count(@incollection != '') > 0
(未测试的)