如何解析 XMPP?

Posted

技术标签:

【中文标题】如何解析 XMPP?【英文标题】:How to parse XMPP? 【发布时间】:2015-09-17 06:35:07 【问题描述】:

有人知道如何在 C# 中以正确的方式解析 XMPP 流吗? 我在 XMPP 中遇到了格式错误的 XML 的问题,因为直到流(连接)结束以及如何处理命名空间之前,您都没有得到 </stream> 标记?

谢谢!

【问题讨论】:

出于某种原因您需要自己解析吗?你不能使用像agsXMPP这样的专用库吗? 我之前尝试过,但我无法使用它,因为 agsXMPP 在 WP8.1 中不起作用(在模块 mscorlib.dll 中找不到类型 System.Collections.CollectionBase)。我正在尝试在 WP8.1 中使用 XMPP :-) 【参考方案1】:

是的,当为 XMPP 使用标准 TCP 传输时,您没有正确的“框架”。 XMLReader.ReadSubTree() 救援!基本上:

    创建 XMLReader 实例并执行MoveToContentReadXMLReader.NodeType != XmlNodeType.ElementReadSubtree并使用新创建的XMLReader作为整个下一个XML元素,例如您可以在 XML 到 LINQ 中使用 XElement.Load 并获得漂亮的 XElement 实例。

或者,您可以使用Websocket XMPP transport,其中每个“帧”都是XMLNode/XElement,而没有未关闭的打开流元素

【讨论】:

以上是关于如何解析 XMPP?的主要内容,如果未能解决你的问题,请参考以下文章

如何在ios中解析xmpp xml?

如何将解析的 XML 发送到 XMPP 服务器

如何使用 SMACK 在 Android XMPP 客户端中解析自定义花名册查询响应

XMPP IQ 结果解析问题

在 XMPP 中的群聊 (MUC) 中解析居住者的真实 KID

XML 解析错误:“Not well-formed (invalid token)”,f***g/xmpp PHP library package with xmpp openfire