Java XPath 查詢中的XML 命名空間處理
在Java 中,當使用XPath 查詢XML 時,命名空間可能會帶來挑戰。當 XML 不包含命名空間時,XPath 查詢可以很簡單,但命名空間的存在會帶來複雜性。
情況 1:沒有命名空間的 XML
對於沒有命名空間的 XML,XPath查詢使用預設命名空間,這實際上是沒有命名空間的。在這種情況下,像“/workbook/sheets/sheet[1]”這樣的查詢可以輕鬆檢索元素。
案例2:帶有命名空間的XML
但是,帶有命名空間的XML像下面這樣的命名空間增加了複雜性:
在這種情況下,XPath 表達式「/workbook/sheets/sheet[1]」將會失敗,因為元素綁定到「http://schemas.openxmlformats.org/spreadsheetml / 2006年/主要”命名空間。
解決方案:
/*[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