Xpath для любого HTML-элемента, содержащего определенный текст внутри HTML-тега. - PullRequest
0 голосов
/ 09 сентября 2018

Необходимо найти xpath, соответствующий любому тегу html, который содержит боковую панель слова в любом теге html. Пример:

<p class='my class'>This is some text</p>
<h1 class='btn sidebar btn-now'><p>We have more text here</p><p> and anoter text here</p></div>
<div id='something here'>New text here</div>
<div id='something sidebar here'>New text again</div>
<nav class='this sidebar btn'>This is my nav</nav>
<sidebar><div>This is some text</div></sidebar>

Мне нужен xpath, чтобы получить любой HTML-элемент, имеющий слово 'sidebar' между начальным <и конечным> HTML-тегом, будь то класс, идентификатор или имя HTML-тега. В приведенном выше примере мне нужно получить в результате:

 <h1 class='btn sidebar btn-now'><p>We have more text here</p><p> and anoter text here</p></div>
<div id='something sidebar here'>New text again</div>
<nav class='this sidebar btn'>This is my nav</nav>
<sidebar><div>This is some text</div></sidebar>

Нужно быть xpath, а не regex

1 Ответ

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

Попробуйте ниже и дайте мне знать, если это не то, что вы ищете:

//*[contains(@*, "sidebar") or contains(name(), "sidebar")]
  • contains(@*, "sidebar") означает узел с любым атрибутом , который содержит "sidebar"
  • contains(name(), "sidebar") - имя узла, содержащее "sidebar"

Если вам нужно только id или class, чтобы содержать "sidebar":

//*[contains(@id, "sidebar") or contains(@class, "sidebar") or contains(name(), "sidebar")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...