Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,从XMPP服务器响应字符串到XML文档_Java_Xml_String_Xmpp_Document - Fatal编程技术网

Java,从XMPP服务器响应字符串到XML文档

Java,从XMPP服务器响应字符串到XML文档,java,xml,string,xmpp,document,Java,Xml,String,Xmpp,Document,我有一个连接到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"> 但我得到了一个错误: org.xml.sax.SAXParseEx

我有一个连接到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">
但我得到了一个错误:

org.xml.sax.SAXParseException:xml文档结构必须在SAXException的同一实体中开始和结束。


有一种方法可以禁用此限制,因为文档不被
标记关闭是正常的。

这是实现XMPP时遇到的许多问题中的第一个


您需要一个增量XML解析器,就像James Clark的一样。更好的做法是使用现有的XMPP库,用于Java。

这是实现XMPP的许多问题中的第一个


您需要一个增量XML解析器,就像James Clark的一样。更好的方法是使用现有的XMPP Java库。

尝试使用它在服务器和客户端之间进行通信。它将为您处理所有低级通信,并允许您在更具功能的抽象级别进行编程。

尝试使用它在服务器和客户端之间进行通信。它将为您处理所有的底层通信,并允许您在更具功能的抽象级别进行编程。

谢谢,但我尝试了一个演示,发现需要使用有效的XML文档。我已经通过在解析字符串之前在字符串处手动添加结束标记来解决了这个问题。这种方法将在几个小时内有效。明天,在您编写了一个工作正常但不正确的尖括号解析器,以便能够判断何时将您认为完整的文档放入XML解析器之后,您将意识到,对于每一节,都需要一个新的XML解析器,这需要大量内存。说真的,我已经编写了多个XMPP客户端和客户端库。谢谢,但是我尝试了一个演示,我发现需要使用一个有效的XML文档。我已经通过在解析字符串之前在字符串处手动添加结束标记来解决了这个问题。这种方法将在几个小时内有效。明天,在您编写了一个工作正常但不正确的尖括号解析器,以便能够判断何时将您认为完整的文档放入XML解析器之后,您将意识到,对于每一节,都需要一个新的XML解析器,这需要大量内存。说真的,我已经编写了多个XMPP客户端和客户端库。心痛一直困扰着你。在Smack api中,我不知道如何使用自定义SASL机制,lie X-FACEBOOK-PLATFORM。添加你自己的SASL机制:在Smack api中,我不知道如何使用自定义SASL机制,lie X-FACEBOOK-PLATFORM。添加你自己的SASL机制:
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);
    }