我有一些看起来像
的XML<page id="1">
<subpages>
<page id="2">
<subpages>
<page id="3">
</subpages>
</page>
<page id="4"></page>
<page id="5"></page>
</subpages>
</page>
我要做的是拉出顶部<page>
标记中的顶级<subpages>
,这意味着我正在尝试提取第2,4和5页,但不是3。
现在我正在做//subpages[1]/page
但这会获取第一个子页面标记内的所有页面。有没有办法做到这一点?
我可以使用
在jQuery中执行此操作var c = $(data).find("subpages").first();
$(c).children("page").each(function() {});
如果我无法获得正确的xpath工作,有没有办法让Nokogiri像jQuery一样?
答案 0 :(得分:1)
最简单的方法是:
/*/*/page
更明确地说:
/page/subpages/page
另外,你可以这样做(但我尽量避免//
):
(//subpages)[1]/page
答案 1 :(得分:0)
你的jQuery相当于:
doc.at('subpages').xpath('page').each do |page|
puts page.attr('id')
end
结果:
2
4
5