xpath,function通过搜索元素来识别类?

时间:2012-05-05 14:52:53

标签: html xpath

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

< TR>

< td class =“authorbox”>

 < div class="regsn">

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

...

并且表格中包含更多

&LT; TR&GT;

&LT; TR&GT;

&LT; TR&GT;

修改

这是我目前能够制作的xpath

// TD [@类= 'authorbox']

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

由于

2 个答案:

答案 0 :(得分:1)

使用

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

这将选择XML文档中具有tr子项的任何td,其class属性的字符串值为字符串"authorbox"td child)有一个文本节点后代,其字符串值是一个包含"xxxx"的字符串。

这可以更精确

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

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

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

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

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

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

答案 1 :(得分:1)

所以,看起来你已经到了一半了。你只需要为你的谓词添加一点牛肉:

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

此外,如果你想要tr,你可以从上面开始,然后将td引用放到谓词中。