如何使用near元素选择xml节点

时间:2009-11-04 17:54:49

标签: xml xpath html-agility-pack

使用XPath和HTML Agility Pack,我需要使用destination选择color:#ff00ff文本。

我的HTML看起来像这样:

<table>
   <tr style="color:#ff00ff">
      <td></td>
   </tr>
   <tr>
      <td>destination</td>
   </tr>
   <tr>
      <td></td>
   </tr>
   <tr>
      <td>not destination</td>
   </tr>
</table>

2 个答案:

答案 0 :(得分:2)

/table/tr[@style = "color:#ff00ff"]/following-sibling::tr[1]/td[1]/text()

选择<tr> style="color:#ff00ff" <td>,并从那里开始,<tr>的第一个{{1}}子项的文字。

为了更加安全,您可以使用:

tr[translate(@style, ' ', '') = "color:#ff00ff"]

这会从属性值中删除任何空格,因此事情会更加独立于HTML源。

答案 1 :(得分:0)

使用jQuery可能看起来像这样:

$('tr[style*="color:#ff00ff"]').next('tr').children().text();

但这在很大程度上取决于您的确切文档结构和样式定义。它会找到任何包含字符串“color:#ff00ff”的样式的tr(确切地说,没有空格等)。然后,它将从该行中选择下一个兄弟行并从其所有直接子节点获取文本内容。在您的情况下,这将是单列元素。