XML ファイル内のすべての要素<HeadA>
と要素を繰り返し処理し、それぞれに一意の ID を追加したいと考えています。<HeadB>
これまでに試したアプローチは次のとおりです。
@xml.each_element('//HeadA | //HeadB') do |heading|
#add a new id
end
問題は、XPath からのノードセット//HeadA | //HeadB
がすべてHeadA
s の後にすべて s が続くことHeadB
です。私が必要としているのは、ドキュメントに表示される順序ですべてHeadA
の とを並べたリストです。HeadB
明確にするために、私の XML は次のようになります。
<Doc>
<HeadA>First HeadA</HeadA>
<HeadB>First HeadB</HeadB>
<HeadA>Second HeadA</HeadA>
<HeadB>Second HeadB</HeadB>
</Doc>
そして、XPathから得ているのは次のとおりです。
<HeadA>First HeadA</HeadA>
<HeadA>Second HeadA</HeadA>
<HeadB>First HeadB</HeadB>
<HeadB>Second HeadB</HeadB>
私が取得する必要があるのは、順番にノードである場合:
<HeadA>First HeadA</HeadA>
<HeadB>First HeadB</HeadB>
<HeadA>Second HeadA</HeadA>
<HeadB>Second HeadB</HeadB>
IDを順番に追加できます。