通过xpath在xml中查找相邻节点

时间:2010-12-27 02:47:34

标签: xml xpath

我有一个深层嵌套的结构(实际上解析出了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 个答案:

答案 0 :(得分:5)

使用

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

这意味着

选择所有font个元素的所有文本节点子元素,这些元素是文档中具有td子元素的第二个font的子元素,并且本身就是某个{{1}的子元素元素。

如您所见,不需要tr

答案 1 :(得分:0)

你有正确的想法。如果你摆脱那里的/b,它应该有效。