次のようなXMLがあります。
<container>
<type>01</type>
<text>one</text>
</container>
<container>
<type>02</type>
<text>two</text>
</container>
編集sの順序はcontainer
固定されていません。
このドキュメントからテキストを選択するために(rubyのnokogiriを介して)xPathを使用しています。02のでを取り込めるようにしたいのですが、text
それcontainer
が存在しない場合は01のでから取ります。type
text
container
type
できます
/container/type[text() = "02" or text() = "01"]/parent::container
これで両方の要素が得られます。次に、ルビーを使用して正しい要素を並べ替えて取得できます(これにより、最初に01要素が返されます)が、これは不器用です。
私はstackoverflowを検索しましたが、単純なxpathで要素出力を並べ替えることができるものはすぐにはわかりませんが、要素を取得するようにxpathに命令する方法はありますが、存在しない場合は別の要素にフォールバックしますか?
乾杯!