xpath условие выбрать текст одного узла или другого узла - PullRequest
0 голосов
/ 24 ноября 2018

это мои тестовые данные

<tbody>
  <tr>
    <td>foo 1</td>
    <td>first interest</td>
    <td>bar 1</td>
  </tr>
  <tr>
    <td>foo 2</td>
    <td>
      <p>second interest</p>
    </td>
    <td>bar 2</td>
  </tr>
  <tr>
    <td>
    </td>
    <td>
    </td>
    <td>
    </td>
  </tr>
</tbody>

Я бы хотел выбирать каждый раз текст второй ячейки (td[2]) строки таблицы, но проблема в том, что текст может быть в другом подэлементе (параграфp).

Когда я выполняю этот xpath //tbody/tr[1]/td[2]/p/text() | //tbody/tr[1]/td[2]/text(), результат в порядке, но если я выполню это для второй строки //tbody/tr[2]/td[2]/p/text() | //tbody/tr[2]/td[2]/text(), тогда я получу три текста, где первый и последний пустые.Как я могу изменить xpath, чтобы получать каждый раз только интересующий меня текст. Примечание: может быть также пустая ячейка, которую я не хочу получать.

спасибо

1 Ответ

0 голосов
/ 24 ноября 2018

Попробуйте этот XPath, чтобы получить текст из необходимых (не пустых секунд) ячеек таблицы:

//tbody/tr/td[2]//text()[normalize-space()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...