1

以下表为例,我知道如何<td>'Title_A'</td>通过 xapth 的 text() 函数进行匹配,有没有直接的方法来选择<td> text_unknown </td>它之后的?:

<table>
    <tr><td rowspan=2> Title_A </td>    <td> text_unknown </td></tr>
                                    <tr><td> text_unknown </td></tr>

    <tr><td rowspan=2> Title_B </td>    <td> text_unknown </td></tr>
                                    <tr><td> text_unknown </td></tr>

    <tr><td rowspan=4> Title_C </td>    <td> text_unknown </td></tr>
                                    <tr><td> text_unknown </td></tr>
                                    <tr><td> text_unknown </td></tr>
                                    <tr><td> text_unknown </td></tr>
</table>
4

2 回答 2

2

假设您将 'Title_A' 与以下 XPath 匹配:

//td[text()='Title_A']

下一个单元格将是

//td[text()='Title_A']/following-sibling::td[1]

或者,如果您已经在变量中包含标题单元格:

title_a = doc.xpath("//td[text()='Title_A']")

然后你可以使用 DOM 方法next_sibling

next_cell = title_a.next_sibling
于 2013-04-23T15:21:15.813 回答
0

对 html 使用 css,对 xml 使用 xpath。+是 css 下一个相邻兄弟选择器。

doc.at('td[text()="Title_A"] + td')

我看到 Title_A 周围有一些空格,所以也许:

doc.at('td[text()*="Title_A"] + td')
于 2013-04-23T20:42:36.693 回答