将字符串拆分为更多xml文档

时间:2011-06-24 19:40:23

标签: c# xml parsing split client-server

我有一个使用xml文档进行通信的C#客户端服务器应用程序。

服务器一个接一个地向客户端发送更多xml文档。在客户端我从socket读取缓冲区。问题是客户端碰巧一次读取更多的xml文档。

例如,它恰好读取了这样的整个字符串:

<result>failed</result><other>more information</other>

如何将字符串拆分为我需要的两个xml文档:

<result>failed</result>

<other>more information</other>

1 个答案:

答案 0 :(得分:1)

最简单的方法可能就是添加一个包装器:

string xml = "<wrapper>" + originalText + "</wrapper>";

然后你可以将整个事物读成XDocument(或其他),并在包装​​器下找到各个元素。

很可能更聪明这样做的方法 - 请参阅this MSDN article for example - 但这个可能是我采取的方法,如果它适合你,只是因为它是非常容易。

请注意,如果您需要能够在不阅读所有的情况下阅读部分文本,使用XmlReader可能是更好的解决方案 - 我的方法要求您阅读整个事情先变成一个字符串。如果没有您正在使用的网络协议的更多细节,很难判断这是否合适。