Xml XPATH选择所有非空节点
如何选择具有某些值且不为空的所有节点?例如,我有以下XML:Xml XPATH选择所有非空节点,xml,xpath,Xml,Xpath,如何选择具有某些值且不为空的所有节点?例如,我有以下XML: <bbb> <aaa/> <bbb/> <ccc>23</ccc> <ddd/> <eee>Health</eee> <fff/> </bbb> 23 健康 在这里,我想选择那些节点,它们是bbb的子
<bbb>
<aaa/>
<bbb/>
<ccc>23</ccc>
<ddd/>
<eee>Health</eee>
<fff/>
</bbb>
23
健康
在这里,我想选择那些节点,它们是bbb的子节点,并且具有一些值,即节点ccc和eee
选择那些属于bbb的子节点并具有某些值的节点
如果要包括仅包含空格的节点,请尝试:
/bbb/*[string()]
如果要忽略仅包含空格(
)的节点,请尝试:
这应该起作用:
/bbb/*[.!='']
值不为空的bbb的所有子节点。仅当具有文本值时获取所有节点:
/bbb/*[text()]
您想选择只包含空格的节点还是应该忽略它们?应该忽略空格@DanielHaleyth这也将选择只包含空格的节点。这是正确的。在OP声明他只想忽略带空格的节点之前,我写了这个答案。是的,我的评论更多是针对OP(和/或未来的访问者),以便他/她知道您的xpath选择了什么。对于原始问题,您的答案完全没有问题。:-)这也会选择只包含空格的节点。我怀疑
/bbb/*[not(empty(.))]
在大多数处理器上更有效,因为不需要访问和潜在转换节点的值。
/bbb/*[text()]