Smack的调试控制台消息显示了一条完整的消息,包括我正在寻找的CDATA中的消息细节:
11:45:05 AM RECV (0): <
11:45:05 AM RECV (0): message to="me@server.com/Smack" type="groupchat" from="roomname@conf.server.com/roomname-abc"><body>ABCD issues valid 2015-06-05T15:45:00Z</body><html xmlns="http://jabber.org/protocol/xhtml-im"><body xmlns="http://www.w3.org/1999/xhtml">ABCD issues valid 2015-06-05T15:45:00Z</body></html>
<x xmlns="roomname-abc" issue="2015-06-05T15:45:00Z" someid="foo" id="1234.5678"><![CDATA[
+------------------------+
| THIS IS MESSAGE DETAIL |
| INSIDE THE CDATA |
| THAT I REALLY NEED |
+------------------------+
]]></x></message>但是在我的代码中,当我查看一条消息时,所有的细节都从<x></x>元素中删除了,包括它的一些属性:
<message to='me@server.com/Smack' from='roomname@conf.server.com/roomname-abc' type='groupchat'><body>ABCD issues valid 2015-06-05T15:45:00Z</body><html xmlns='http://jabber.org/protocol/xhtml-im'><body xmlns="http://www.w3.org/1999/xhtml">ABCD issues valid 2015-06-05T15:45:00Z</body></html>
<x xmlns='roomname-abc'></x></message>这个细节是怎么回事,控制台是怎么看的,但是我看不出来,我怎么能得到CDATA呢?
发布于 2015-06-09 02:39:22
在完成这个任务的时间压力下,我用胡言乱语而不是Smack重新实现了我的客户端,并得到了我需要的东西。(我需要的CDATA保存在消息扩展中,我不需要编写额外的代码。)
发布于 2015-06-05 21:18:36
您需要为包含CDATA部分的扩展元素实现和注册一个提供程序。有关提供者的Smack文档可以获得更多信息。
https://stackoverflow.com/questions/30671326
复制相似问题