Как игнорировать метки в Xpath? - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу только test снизу HTML DOM.

Вот мой xpath (// label [normalize-space (text () = 'test')])[1]

Благодаря этому я получаю и *, и тест, в то время как мое требование - получить только тест . Пожалуйста, помогите мне в этом.

Ниже мой HTML:

   <html>
      <script>
      </script>
      <body>
          <label>
             <label>*</label>
               test&nbsp
         </label>
      </body>
    </html>

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете использовать это выражение

//label[normalize-space(text()='test')]/text()[2]

Он извлекает второй text() внешний узел <label>.


С XPath-2.0 или выше вы можете использоватьследующее выражение

//label[normalize-space(string-join(text()))='test']/text()/normalize-space(.)

Соединяет все text() узлы label и затем выводит normalize-space(...) 'ed строку результата.Я не знаю ни одного решения XPath-1.0.

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