【发布时间】:2015-05-21 10:31:15
【问题描述】:
<doc ok="yes">
<a>
<b>
<c>
aa
<d ok="yes">
bb
</d>
cc
</c>
</b>
</a>
<e>
ee
</e>
<f ok="no">
no
</f>
</doc>
我需要使用 XPath 检索节点列表,其中每个节点必须满足以下条件:
节点至少有一个子文本节点
如果节点(或祖先轴上最近的节点)具有属性
"ok",则值必须为"yes"当任何祖先是结果的一部分时,排除节点
所以在我的示例中,我想得到<c> 和<e>。节点<d> 被排除在外,因为它是<c> 的子节点,它是结果的一部分。
我从条件 (1) 开始使用这个表达式 //*[count(./text()[normalize-space()])>0]。它返回<c>、<d>、<e> 和<f>。我不知道如何排除<d>
【问题讨论】:
标签: xpath