nokogiri で解析したい非常に単純な ODF ドキュメントがあります。
XML は次のようになります。
<office:body>
<office:text>
<text:sequence-decls>
...
</text:sequence-decls>
<text:section text:name="categorylevel1" text:style-name="Sect1">
<text:p text:style-name="Title">[CATEGORY_LEVEL_1_NAME]</text:p>
</text:section>
</office:text>
categorylevel1
現在、ドキュメントのセクションを選択しようとしています。私が使用しているライブラリは、XPath を自動的に生成し、
".//text:section[@text:name='categorylevel1']"
正しいものを生成します。ここでの問題は、ライブラリ (nokogiri) が MRI ではこのパスを受け入れているように見えますが、JRuby では受け入れないようです (SyntaxError をスローします)。ライブラリの Java バージョンは名前空間属性をサポートしていないようです。
ドキュメントのセクションを参照する別の方法はありますか? たとえば、text:name
属性を使用するだけですか?名前空間を無視する方法はありますか? セクションのtext:name
属性値はドキュメント全体で一意になるため、参照ミスは問題になりません。