Java, от строки ответа сервера XMPP до XML-документа - PullRequest
1 голос
/ 19 июля 2011

У меня есть клиент, который подключается к XMPP-серверу, и сервер отправляет мне ответ

<?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">

Я пытаюсь создать XMLDocument с классом Document:

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>?

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Это первый из многих вопросов, которые у вас возникнут при реализации XMPP.

Вам потребуется инкрементный синтаксический анализатор XML, например, XP Джеймса Кларка.Еще лучше было бы использовать существующую библиотеку XMPP для Java из списка на xmpp.org .

0 голосов
/ 20 июля 2011

Попробуйте использовать Smack для связи между вашим сервером и клиентом. Он позаботится обо всех низкоуровневых коммуникациях и позволит вам программировать на более функциональном уровне абстракции.

...