<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>
。
这个XPath,
//p[not(a) or node()[not(self::a)]]
将选择缺少p
孩子的所有a
元素或具有不是a
s的子节点,这相当于选择不仅有p
孩子的a
元素,
<p>case a</p>
<p>case <a>b</a></p>
按照要求。