私はXMPPサーバーに接続するクライアント、およびサーバーを持っているが、私に答えXMPPサーバーの応答文字列からXML文書へのJava、
<?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クライアントとクライアントライブラリを書いてきました。ハートは、あなたがいる道を塞いでいます。 –