0

私は次のような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>タグのトップレベルを引き出すことです。つまり、3ページではなく、2、4、5ページを引き出しようとしています。

今やってい//subpages[1]/pageますが、これで最初のサブページタグ内のすべてのページが取得されます。これを行う方法はありますか?

私はjQueryでこれを行うことができます

var c = $(data).find("subpages").first();
$(c).children("page").each(function() {});

適切なxpathを機能させることができない場合、NokogiriをjQueryのように動作させる方法はありますか?

4

2 に答える 2

1

最も簡単な方法は次のとおりです。

/*/*/page

より明確に:

/page/subpages/page

また、あなたはこれを行うことができました(しかし私は避けようとします//):

(//subpages)[1]/page
于 2012-06-21T22:12:22.720 に答える
0

jQueryに相当するものは次のとおりです。

doc.at('subpages').xpath('page').each do |page|
    puts page.attr('id')
end

結果:

2
4
5
于 2012-06-22T16:27:30.203 に答える