落后符合最近的标签我有一个HTML这样的:如何使用XPath
html =<<EOS
<table><!-- outer table -->
<tr><td>
<table><!-- inner table 1 -->
<tr><td>Foo</td></tr>
</table>
<table><!-- inner table 2 -->
<tr><td>Bar</td></tr>
</table>
</td></tr>
</table>
EOS
我想从一个静态值Foo
得到一个变化值Bar
。
有了这段代码,我可以获得价值。
Nokogiri::HTML(html)
doc.xpath("//table[tr/td[text()='Foo']]/following-sibling::table//td").text
,我想改写这样的:
doc.xpath("//table[//td[text()='Foo']]/following-sibling::table//td").text
但这码不起作用,因为//table[//td[text()='Foo']]
匹配外部表不是内部表。
在XPath中是否有像这样的表达式nearest backward match
?
//table[(nearest match expression)td[text()='Foo']]
使用'my_doc.at'或'my_doc.at_xpath'可以从XPath中删除'[1]',对吗? – Phrogz 2015-01-21 19:06:55
@Phrogz可能是Ruby语法吗?这是什么意思? – 2015-01-21 19:08:07
使用Nokogiri'at'和'at_xpath'方法将仅返回第一个匹配元素,而不是一组节点。 – Phrogz 2015-01-21 19:09:36