0

对于我的生活,我不明白为什么我不能抓住 th 下面的 td 文本。

我试过这个('//th(contains(text(), "Text I Need Is After This")]')它确实抓住了它打算抓住的实际行,但我想要抓住的是td/a 链接中的文本。

附加('//th(contains(text(), "我需要的文本在此之后")]/td/a')或只是 ('//th(contains(text(), "我需要的文本在此之后")]/td')找不到任何匹配项。

这是HTML

    <tr class="">
    <th scope="row" style="text-align:left;">Text I Need Is After This</th>
    <td class="" style="">
    <a href="/wiki/Queens" title="Queens">Queens</a>, 
    <a href="/wiki/New_York" title="New York">New York</a>, 
    <a href="/wiki/United_States" title="United States">United States</a>
    </td>
      </tr>
4

2 回答 2

5

添加/td/a到第一条语句是告诉 XPath 找到 的子节点<th>,但它们不是。因此,如果您想找到<th>节点,<td>然后<a>直接使用 and ,请使用该following-sibling函数,如下所示:

//th[contains(text(), "Text I Need Is After This")]/following-sibling::td
于 2013-01-06T18:32:43.493 回答
3

你应该使用类似的东西:

td[contains(preceding-sibling::text(), "Text I Need Is After This")]
于 2013-01-06T18:36:29.173 回答