2011-10-11 66 views
6

我打电话给第三方服务,他们将响应作为Xml发送。但是,当我使用WebClient调用服务时,我得到的响应是一个字节数组。如何将WebClient的字节数组响应转换为Xml?

var client = new WebClient(); 
var result = client.UploadValues(post_url, data); 

结果是一个字节数组。如何将其转换为XML以读取第三方服务提供的响应?

回答

7

使用MemoryStream

using (var stream = new MemoryStream(result)) 
{ 
    var doc = XDocument.Load(stream); 
    ... 
} 
+0

只是并称的XDocument在这里不从System.Xml.Linq命名空间http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx,但是一个正常的Xml文档,其中c从存储器流中加载,如下所示:http://blogs.msdn.com/b/tolong/archive/2007/11/15/read-write-xml-in-memory-stream.aspx – shashi

8

你可以把字节转换成字符串:

string xml = Encoding.UTF8.GetString(result); 

,然后分析它:

XDocument doc = XDocument.Parse(xml);