如何从 [Smack XMPP API] MultiUserChat 消息中获取 CDATA?
How do I get the CDATA from a [Smack XMPP API] MultiUserChat Message?
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?
您需要为包含 CDATA 部分的扩展元素实施和注册提供程序。有关详细信息,请参阅有关提供商的 Smack 文档。
迫于完成这项工作的时间压力,我使用 Babbler 而不是 Smack 重新实现了我的客户端,并完成了我需要完成的工作。 (我需要的 CDATA 保存在消息扩展中,我不必编写额外的代码。)
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?
您需要为包含 CDATA 部分的扩展元素实施和注册提供程序。有关详细信息,请参阅有关提供商的 Smack 文档。
迫于完成这项工作的时间压力,我使用 Babbler 而不是 Smack 重新实现了我的客户端,并完成了我需要完成的工作。 (我需要的 CDATA 保存在消息扩展中,我不必编写额外的代码。)