<div>
<p>case a</p> # only has a text node, selected
<p>case <a>b</a></p> # has a text node and an a node, selected
<p><a>case c</a></p> # only has an a node, not selected
</div>
是否有一种方法可以选择p
个节点,这些节点不仅具有a
个节点,即<p>case a</p>
和<p>case <a>b</a></p>
,而没有<p><a>case c</a></p>
。
答案 0 :(得分:2)
此XPath,
//p[not(a) or node()[not(self::a)]]
将选择所有缺少p
子元素或的a
个元素,它们的子节点不是a
,这等效于 < em>选择不仅有p
个孩子的a
个元素 ,
<p>case a</p>
<p>case <a>b</a></p>
根据要求。