Выберите разные узлы с различной глубиной в одном xpath - PullRequest
0 голосов
/ 07 сентября 2018
<div>
  <p>a</p>
  <ul>
    <li></li>
  </ul>
  <other-tags></other-tags>
<div>

Я бы хотел выбрать теги p и li в приведенном выше примере.

Я могу сделать это, используя //div/p|//div/ul/li, но возможно ли добиться того же самого без |, другими словами, не повторяя //div. Я пробовал //div/*[self::p or self::ul/li], но выбрал теги p и ul.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Это XPath,

//*[self::p or self::li]

выберет все элементы p и li в документе.

Это XPath,

//div[@id="i1"]//*[self::p or self::li]

выберет все элементы p и li под целевым элементом (ами) div.

0 голосов
/ 07 сентября 2018

Все, что вам нужно сделать, это использовать //p|//li. Кроме того, это помогает исследовать материал before, публикуя его в StackOverflow, поскольку я нашел эту информацию здесь . Почему вы пытаетесь избежать использования | в вашем XPath?

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