使用XPath 在Java 中透過命名空間查詢XML
當處理包含綁定到命名空間的元素的XML 文件時,使用XPath 查詢可能會變得具有挑戰性。考慮以下範例:
使用預設的「無命名空間」XPath 表達式(如「/workbook/sheets/sheet[1]」)將會失敗。這是因為 XML 文件中的元素綁定到命名空間,而 XPath 表達式中不考慮命名空間。
解決方案1:註冊命名空間並使用命名空間前綴
建議的做法是使用命名空間前綴註冊命名空間,使XPath 更易於閱讀和維護:
使用命名空間前綴,XPath 表達式變成「/main:workbook/main:sheets/ main:sheet[1]",它可以正確地定址綁定到指定命名空間的元素。
解決方案2:通用匹配和謂詞過濾器
或者,不帶XPath 表達式命名空間前綴可以透過使用元素的通用匹配和指定所需的local-name() 和namespace-uri()的謂詞過濾器來建構:
此方法很詳細,可以呈現如果 XML 文件中存在混合詞彙,則會存在風險。
結論
在處理具有命名空間的 XML 文件時,必須考慮命名空間綁定。透過使用前綴註冊命名空間或精心設計通用 XPath 表達式,可以執行準確可靠的查詢。
以上是如何使用 XPath 在 Java 中透過命名空間查詢 XML?的詳細內容。更多資訊請關注PHP中文網其他相關文章!