XPath для выбора узлов, которые не имеют только одного определенного дочернего узла? - PullRequest
0 голосов
/ 18 сентября 2018
<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 голосов
/ 18 сентября 2018

Этот XPath,

//p[not(a) or node()[not(self::a)]]

выберет все p элементы, которые не имеют a child или , имеют дочерние узлы, которые не являются a s, что эквивалентно выбор p элементов, которые имеют не только a дочерние элементы ,

<p>case a</p>
<p>case <a>b</a></p>

по запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...