我需要检查一个XML节点是否至少有一个非空子节点。应用于此XML,该表达式应返回true
<xml>
<node>
<node1/>
<node2/>
<node3>value</node3>
</node>
</xml>
我尝试使用这个表达式:<xsl:if test="not(/xml/node/child::* = '')">
,但它似乎检查的是所有子元素是否都为空。我该如何编写一个表达式,在至少有一个元素不为空时返回
true
?是否有方法可以在不创建另一个模板来迭代节点的情况下完成这个任务?
更新:我正在考虑计算非空节点,例如test="count(not(/xml/node/child::* = '')) > '0'"
但无论如何我都无法使其正常工作。该表达式不符合规范。
term
(无论父元素叫什么)包含字符串','
”吗?我尝试了record[not(contains(*/*/term, ','))]
,但它匹配了第一个term
没有','
的记录,而第二个有(似乎逻辑上错过了任何 / 无的方面)。 - CodeManX