这个XPath表达式应该有效吗? //测试/祖先::测试

时间:2012-11-28 14:34:59

标签: ruby xpath nokogiri

我正在尝试查找包含后代tbody元素的所有<font color="red">元素。

我正在使用此XPath表达式:

//font[@color="red"]/ancestor::tbody

但它不起作用。它应该工作还是这个我正在使用(或其他地方)的库的问题?我正在使用名为Nokogiri的Ruby库。

我也试过

//tbody[descendant::font[@color="red"]]

但仍然没有运气。

2 个答案:

答案 0 :(得分:3)

此XPATH表达式将选择包含tbody的所有<font color="red">标记:

//tbody[.//font[@color="red"]]

答案 1 :(得分:1)

我发现了问题:我正在使用的文档的源代码中实际上没有tbody个元素!

我以为是因为我使用Chrome开发者工具中的“元素”标签浏览源代码,而且由于某种原因,此工具在其中添加了<tbody>元素!

因此,如果源代码中实际存在正确的tbody元素,那么下面的XPath表达式将起作用, 可以正常工作。

//font[@color="red"]/ancestor::tbody