我在ruby中使用了nokogiri和XML搜索功能,例如:
a = Nokogiri.XML(open 'a.xml')
x = a.search('//div[@class="foo"]').text
效果很好。
但是如何指定匹配同一级别(下一个)的下一个(兄弟)元素?
例如,对于此输入:
<div>
<div>...</div>
<div>...</div>
<div class="foo"></div>
<div>EXTRACT ME</dev>
...
</div>
实际输入是一些非XHTML html,但到目前为止Nokogiri.XML并没有抱怨。
顺便问一下,f.search真正期望的过滤器语法是什么?的xpath?
答案 0 :(得分:3)
从Brian Agnew和DevNull那里得到提示我猜f.search实际上需要xpath语法并使用以下兄弟谓词,以下表达式与所要求的匹配:
a = x.search('//div[@class="foo"]/following-sibling::div[1]')
答案 1 :(得分:2)
我认为您需要XPath的following-sibling谓词。