XPath选择不只有一个特定子节点的节点?

时间:2018-09-18 01:44:03

标签: html xml xpath

<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>

1 个答案:

答案 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>

根据要求。