我試圖按照http://www.ibm.com/developerworks/xml/library/x-nmspccontext/index.htmlJava的DOM lookupNamespaceURI是無法找到命名空間URI
UniversalNamespaceResolver
例如解決XPath計算的命名空間agains的XML。我遇到的問題是,下面lookupNamespaceURI調用返回的XML空,我如下:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document dDoc = builder.parse(new InputSource(new StringReader(xml)));
String nsURI = dDoc.lookupNamespaceURI("h");
的XML:
<?xml version="1.0"?>
<h:root xmlns:h="http://www.w3.org/TR/html4/">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>`
</h:root>
,而我希望它返回「http://www.w3.org/TR/html4/」。
謝謝jtahlborn! setNamespaceAware幫助!我沒有意識到這一點。 至於另一件事 - XPath和XML都可以。我不知道在那裏將使用哪些名稱空間。而且,我知道UniversalNamespaceResolver建議在處理具有相同或不同名稱空間的不同前綴時會失敗。但我不知道如何正確處理。 – user431529 2013-03-25 08:52:49
@ user431529 - 我不明白,你如何爲xml文檔編寫xpath並且不知道正在使用哪些命名空間? – jtahlborn 2013-03-25 14:11:50
好吧,原因並不那麼明顯:我們有一個接收xpath&xml的服務,並且希望將結果返回給舊系統。 – user431529 2013-03-26 09:21:02