如何获取所需的节点而不是xpath中的所有节点

时间:2015-10-04 15:34:22

标签: xpath

<table>
<tr> <th> colspan=3 **pencils** </th> </tr>
<tr> <td> camelin </td></tr>
<tr> <td> upsara </td></tr>
<tr> <th> colspan=3 **subjects** </th> </tr>
<tr> <td> Maths </td></tr>
<tr> <td> Physics </td></tr>
<tr> <td> Chemistry </td></tr>
<tr> <th> colspan=3 **books** </th></tr>

如果节点tr包含铅笔,那么我希望以下tr节点包含camelin和upsara。但我结合了所有的camelin,upsara,数学,物理。

同样,如果tr包含主题,那么我希望以下节点包含数学物理和化学。 我想要铅笔之后的文字我的意思是接下来的两个节点与铅笔信息有关。 我希望通过检查其中的条件来检查colspans之间的文本。还有一件事是动态的计数而不是静态的。

1 个答案:

答案 0 :(得分:0)

试试这个。 它会在铅笔或主题之后返回前2个TD元素。

/table/tr[contains(th/text(), 'pencils')]/following-sibling::tr[position()<3]/td/text()
/table/tr[contains(th/text(), 'subjects')]/following-sibling::tr[position()<3]/td/text()