XPath для всех элементов не с определенным родителем - PullRequest
2 голосов
/ 06 мая 2020

Допустим, у меня есть следующие XML:

<div>
   <a>
      <label>a</label>
   </a>
   <b>
      <label>b</label>
   </b>
   <c>
      <d>
         <label>c-d</label>
      </d>
   </c>
   <b>
      <d>
         <label>b-d</label>
      </d>
   </b>
</div>

Я пытаюсь использовать Xpath для поиска всех элементов «label», но не внутри тегов <b>. В этом примере я хотел бы получить

<label>a</label>
<label>c-d</label>

Ответы [ 2 ]

2 голосов
/ 06 мая 2020

Этот XPath,

//label[not(parent::b)]

выбирает все label элементы без b родительского для вашего заголовка.

Это XPath,

//label[not(ancestor::b)]

выбирает все label элементы без b предка в ваших примерах.

1 голос
/ 06 мая 2020

Если я правильно понял ваш вопрос, вы пытаетесь получить все метки, которые не находятся внутри тега b.

Попробуйте использовать указанный ниже xpath.

//div//label[not(ancestor::b)]

enter image description here

...