1

我是 xpath 和 html 的新手。是否可以在每个类“authorbox”下的 html 中搜索文本“xxxx”,如果该类有,则自动选择父类 tr。

<tr>

<td class="作者框">

 < div class="regsn">

      < a href="/member/profile/xxxx" t="post-usersntxt">xxxx< /a>

……

和桌子继续更多

<tr>

<tr>

<tr>

编辑

这是我目前能够制作的 xpath

//td[@class='authorbox']

如果找到文本,我真的不知道如何搜索文本“xxxx”或选择父 tr。如果我愿意,我可以选择每个表,但如果它更自动的话会很好。

谢谢

4

2 回答 2

1

使用

//tr[td[@class='authorbox']
           //text()[contains(., 'xxxx')]
    ]

这将选择trXML 文档中具有tdclass属性的字符串值是字符串的子级"authorbox"并且(该td子级)具有其字符串值是包含的字符串的文本节点后代的任何内容"xxxx"

这可能会更精确

如果文本节点后代的字符串值必须完全是字符串"xxxx",则使用

//tr[td[@class='authorbox']
           //text()[. = 'xxxx']
    ]

如果文本节点后代的字符串值应该以字符串开头"xxxx",请使用

//tr[td[@class='authorbox']
           //text()[starts-with(., 'xxxx')]
    ]

如果文本节点后代 shoud 的字符串值包含"xxxx"仅由空格包围的字符串,请使用

//tr[td[@class='authorbox']
           //text()[normalize-space(., 'xxxx')]
    ]
于 2012-05-05T15:08:14.800 回答
1

所以,看起来你已经成功了一半。您只需要在谓词中添加一点牛肉:

//tr[td/@class="authorbox" and td/div/a="xxxx"]

此外,如果您想要tr,您可以从上面的那个开始,然后将td引用向下推到谓词中。

于 2012-05-05T15:08:22.360 回答