如何解析 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 实例并执行
MoveToContent
做Read
而XMLReader.NodeType != XmlNodeType.Element
做ReadSubtree
并使用新创建的XMLReader
作为整个下一个XML元素,例如您可以在 XML 到 LINQ 中使用 XElement.Load
并获得漂亮的 XElement
实例。
或者,您可以使用Websocket XMPP transport,其中每个“帧”都是XMLNode
/XElement
,而没有未关闭的打开流元素
【讨论】:
以上是关于如何解析 XMPP?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SMACK 在 Android XMPP 客户端中解析自定义花名册查询响应
在 XMPP 中的群聊 (MUC) 中解析居住者的真实 KID
XML 解析错误:“Not well-formed (invalid token)”,f***g/xmpp PHP library package with xmpp openfire