Java XPath クエリでの XML 名前空間の処理
Java では、XPath を使用して XML をクエリする場合、名前空間によって問題が発生する可能性があります。 XML に名前空間が含まれていない場合、XPath クエリは簡単ですが、名前空間が存在すると複雑になります。
ケース 1: 名前空間のない XML
名前空間のない XML の場合、XPathクエリではデフォルトの名前空間が使用されますが、これは事実上名前空間ではありません。この場合、「/workbook/sheets/sheet[1]」のようなクエリで要素を簡単に取得できます。
ケース 2: 名前空間を含む XML
ただし、名前空間を含む XML次のような名前空間を使用すると、複雑さが増します:
このような場合、要素が「http://schemas.openxmlformats.org/spreadsheetml/」にバインドされているため、XPath 式「/workbook/sheets/sheet[1]」は失敗します。 2006/メイン」 namespace.
Solutions:
/*[local-name()='workbook' and namespace-uri()='http://schemas.openxmlformats.org/spreadsheetml/2006/main'] /*[local-name()='sheets' and namespace-uri()='http://schemas.openxmlformats.org/spreadsheetml/2006/main'] /*[local-name()='sheet' and namespace-uri()='http://schemas.openxmlformats.org/spreadsheetml/2006/main'][1]
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3