0
我想用我的應用程序中使用dom4j的XSD架構時接到了XPath表達式空,我下面的XML文件走近解析一個問題:使用與dom4j的
<menu xmlns="http://example.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.com/ my-schema.xsd">
<content>
<caption>aaa</caption>
<description>vvvv</description>
</content>
</menu>
我初始化dom4j中的解析器,現在我試圖檢索描述節點:
Node node = document.selectSingleNode("/menu/content/description");
(我知道我可以使用迭代器,但XPath的我更合適)
我有null
代替描述節點。
當我試圖找出什麼是錯的,我刪除架構聲明從XML(因此,只有樸素簡單<menu>
開頭),然後將其工作完全正常。
我寧願有那個xsd聲明,所以我做錯了什麼?
在此先感謝!
我最終使用'XSI:noNamespaceSchemaLocation'但你的回答讓我意識到,這是命名空間的問題,這樣的感謝! – Gosia
當您從沒有命名空間的模式導入類型時,使用noNamespaceSchemaLocation。這通常是不正確的做法,因爲我認爲您使用的XSD具有名稱空間。所以你真正應該做的是保持你的xmlns完整的XML實例,並依靠絕對的xpath查詢。 –