解析来自 Windows Phone 7 中 TCP 套接字的 xml 内容
Posted
技术标签:
【中文标题】解析来自 Windows Phone 7 中 TCP 套接字的 xml 内容【英文标题】:parsing xml content coming through TCP sockets in windows phone 7 【发布时间】:2012-01-03 07:29:05 【问题描述】:我正在为 windows phone 7 开发一个 xmpp 聊天应用程序。
它通过流接收 xmpp 数据包。现在我需要解析来自套接字的 xml 内容。
对于 windows phone 7,我们没有类似 SAX 的解析器,它位于流上并为我们提供数据包。
我们没有网络流,windows phone 7 中可以使用 TCP 客户端。
\因为内容来自数据包中的流,所以我需要一个流,我可以在其中动态写入数据。
我们有一个 xmlreader,但如果我使用内存流,它就无法工作。
我们是否有类似 SAX 的解析器,它可以从套接字读取 xml 内容并解析 xml 内容?
请帮助我如何解析来自套接字的 xml 内容。
【问题讨论】:
parsing xml content on windows phone 7 using tcp sockets的可能重复 请编辑和完善您的问题,请勿转载。 @HenkHolterman:它们不一样,我谈到了我的实现。这里我问的是一个可以解析 xml 内容的解析器。虽然它们很相似。所以改进我的问题 【参考方案1】:XmlReader
在MemoryStream
上应该可以正常工作 - 但请记住,当您写入 到流时,您需要在开始读取之前“倒回”它:
var stream = new MemoryStream();
// Potentially several times...
stream.Write(...);
// Rewind to the start of the stream
stream.Position = 0;
// Now read from the stream
请注意,您不需要显式使用XmlReader
- 调用XDocument.Load(Stream)
可以正常工作。
【讨论】:
:为了让 xmlreader 工作,需要提前提供内存流。然后给 xmlReader.create() ..xml 内容通过套接字即时传递,所以我需要将数据放入动态内存流。 @rakesh:每个 xmpp 数据包本身不是一个有效的 XML 元素吗(可能带有一些硬编码的包装)?如果是这样,我不明白为什么需要以流方式解析。也许您可以在问题中提供有关您在做什么的更多信息。 你是对的 xmpp 数据包是一个有效的 xml,但是当数据来自套接字的字节数组时,它可以被分段。我的 xmpp 服务器可以随时发送(xmpp 节)xml 内容,所以我不能确定它是否是正确的 xml。这就是为什么我需要一个可以逐个元素解析的解析器。我还有一个线程,请看一下。 ***.com/questions/8700943/…以上是关于解析来自 Windows Phone 7 中 TCP 套接字的 xml 内容的主要内容,如果未能解决你的问题,请参考以下文章
使用 tcp 套接字在 windows phone 7 上解析 xml 内容
Windows phone 7 - 在 GridView 中重复显示重复的列
IBM Worklight v 5.0.6 - 无法在 Windows Phone 7.5 环境中导航多页