XMPP asmack问题缺少属性

时间:2011-09-12 12:25:17

标签: android xml xmpp ejabberd smack

我遇到了缺少XML节中的属性的问题。根据服务器端的日志文件,我可以确认该属性是从客户端发送到服务器的。此外,当服务器将XML节传递给收件人时,该属性也存在(仍然基于服务器端的日志文件)。问题是,当收件人收到XML节时,未检测到该属性。有什么可能导致这个吗?

原始XML Stanza(发送到服务器,提供给客户端,显示在日志中):

    <message id="RquuK-35" 
        to="dodol@master.nze.com" 
        from="lola@master.nze.com">
        <body>Let's join in my group!!</body>
        <x xmlns="jabber:x:conference" jid="8c326c93b43077d4ecef8685de686462@conference.master.nze.com"/>
    </message>

收到XML Stanza:

    <message id="RquuK-35" 
        to="dodol@master.nze.com" 
        from="lola@master.nze.com">
        <body>Let's join in my group!!</body>
        <x xmlns="jabber:x:conference"/>
    </message>

非常感谢任何建设性的意见。谢谢。

2 个答案:

答案 0 :(得分:0)

当您从XML DOM请求jid属性时,您可能正在指定jabber:x:conference的命名空间。但是,没有前缀的属性总是没有命名空间。尝试使用""作为命名空间URI。

答案 1 :(得分:0)

您需要实现自定义PacketExtensionProvider以正确解析XML数据包。 然后使用ProviderManager.getInstance().addExtensionProvider("myElementName", "myNamespace", new MyCustomPacketExtensionProvider());

将其添加到ProviderManager