我有一個連接到XMPP服務器的客戶端和服務器發送我的答案的Java,從XMPP服務器的響應串到XML文檔
<?xml version="1.0"?><stream:stream id="119B61FB" from="chat.facebook.com" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" xml:lang="en">
我嘗試創建與Document
類的XMLDocument
:
try {
parser = factory.newDocumentBuilder();
d = parser.parse(new ByteArrayInputStream(cleanXMLString.getBytes("UTF-8")));
} catch (ParserConfigurationException ex) {
Logger.getLogger(XMPPManager.class.getName()).log(Level.SEVERE, null, ex);
} catch (SAXException ex) {
Logger.getLogger(XMPPManager.class.getName()).log(Level.SEVERE, null, ex);
}
,但我得到的錯誤:
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity of the SAXException.
有辦法禁用此限制,因爲文檔未被</stream:stream>
標籤關閉是正常的嗎?
謝謝,但我試過一個演示,我看到有需要使用有效的XML文檔。我已經解決了在解析它之前手動在字符串中添加結束標記。 –
這種方法將爲你工作幾個小時。明天,在你編寫了一個工作但不正確的角括號解析器,以便你可以告訴你什麼時候將你想到的作爲一個完整的文檔放入XML解析器中時,你會意識到你需要一個新的XML每個節的解析器,這是一個*噸*的內存。說真的,我寫了多個XMPP客戶端和客戶端庫。心痛在你走的路上。 –