我需要对变量进行测试,在两种情况下评估为true:
并且变量填充了apply-template调用结果。
我试过
test="normalize-space($var)"
但这并不包括空标签的可能性。我也试过这个:
test="$var"
但即使对于只有空格的字符串,这也会评估为真。
顺便说一下,“$ var / *”会产生错误“表达式......我不记得的东西......节点集”,我认为这是因为apply-template变量实例化。
是否有任何(这意味着多级决策)解决方案?
编辑:我忘了说它适用于XSLT 1.0,最好没有任何exslt扩展或类似。答案 0 :(得分:1)
如果要检查结果树片段是否包含任何子节点,则需要exsl:node-set eg。
<xsl:if test="exsl:node-set($variable)/node()"
xmlns:exsl="http://exslt.org/common">
如果没有该扩展功能(或您的特定XSLT 1.0处理器提供的类似功能),则无法执行该检查。
答案 1 :(得分:0)
希望这会有所帮助:
如果字符串中包含任何字符,则“string($variable)
”将为true,如果等于''则为false。
http://www.dpawson.co.uk/xsl/sect2/N3328.html#d4474e64
不包含子节点:not(node())
不包含任何文字内容:not(string(.))
不包含空格以外的文字:not(normalize-space(.))
除评论外不包含任何内容:not(node()[not(self::comment())])