Smack的调试控制台消息向我显示了一条完整的消息,包括我正在寻找的CDATA中的消息详细信息:
class java.util.ArrayList
但在我的代码中,当我查看Message时,所有细节都已从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>
这个细节发生了什么,控制台是如何看到它但我不能,我怎么能得到CDATA?
答案 0 :(得分:1)
您需要为包含CDATA部分的扩展元素实现并注册提供程序。有关更多信息,请参阅有关提供程序的Smack文档。
答案 1 :(得分:1)
在完成这项工作的时间压力下,我使用Babbler而不是Smack重新实现了我的客户端,并得到了我需要的东西。 (我需要的CDATA保留在消息扩展中,我没有必要编写额外的代码。)