найти соседний узел в xml через xpath - PullRequest
3 голосов
/ 27 декабря 2010

У меня есть глубоко вложенная структура (на самом деле разбор xhtml, очень много неприятного), например:

<tr>
  <td>
    <font id="blah">
      stuff
    </font>
  </td>
</tr>
<tr>
  <td>
      more stuff
  </td>
</tr>

, и это повторяется в длинной таблице.Мне нужно выражение xpath, которое выберет второй тег шрифта (или, скорее, это text()).я смотрел на ось preceding-sibling, но что-то не совсем правильно работает.

что-то вроде (и простите меня, если это смешно, мой xpath ржавый)

//tr[preceding-sibling::tr/td/font]/td/text()

Ответы [ 2 ]

5 голосов
/ 27 декабря 2010

Используйте

(//tr/td[font])[2]/font/text()

Это означает :

Выберите все дочерние элементы текстового узла для всех элементов font, которые являются дочерними элементами для второго td в документе, который имеет дочерний элемент font и сам является дочерним для некоторого элемента tr.

Как видите, ось preceeding не нужна .

0 голосов
/ 27 декабря 2010

У вас правильная идея.Это должно сработать, если вы избавитесь от /b там.

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