我正在嘗試讀取已複製名稱空間聲明的現有xml文件。對我來說,留下這些聲明以便進一步處理非常重要。之前我使用XERCES實現org.w3c.dom api來讀取這樣的文檔,並且所有的聲明都離開了,但是當我開始使用JDOM時,它開始省略冗餘的名稱空間聲明。使用JDOM留下重複的名稱空間聲明
下面是示例XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns:ns="namespace_uri">
<element1>...</element1>
<element2>
<ns:child>
text
</ns:child>
<element3 xmlns:ns="namespace_uri">
<ns:child>
content
</ns:child>
</element3>
</document>
我建立JDOM文檔與此代碼:
SAXBuilder builder = new SAXBuilder();
File inputXml = new File(inputFile);
jdomInDoc = builder.build(inputXml);
有沒有辦法迫使JDOM不要省略多餘的命名空間聲明?
非常感謝您的回答。
謝謝你的回答和線索。我決定用我自己的類來重寫AbstractDOMOutputProcessor,強制它去做,我需要。它適用於我,但它是相當不雅的解決方案,如果JDOM有一天允許通過某些參數自定義輸出以留下冗餘名稱空間,那將是很好的。 – user1395648
嗨,我'試着'把一個全面的系統來跟蹤從輸入到輸出的命名空間。保持兼容性並不容易。看起來你可能比我做得更好...... SAX解析XML文檔時,如果有一個「冗餘」的子命名空間,將被忽略....很難將這一切置於一個評論中。請考慮將您的解決方案添加到https://github.com/hunterhacker/jdom/issues/83(我剛剛更新了...我花了幾個小時調查)。 – rolfl