如何将WebClient的字节数组响应转换为Xml?
问题描述:
我打电话给第三方服务,他们将响应作为Xml发送。但是,当我使用WebClient调用服务时,我得到的响应是一个字节数组。如何将WebClient的字节数组响应转换为Xml?
var client = new WebClient();
var result = client.UploadValues(post_url, data);
结果是一个字节数组。如何将其转换为XML以读取第三方服务提供的响应?
答
使用MemoryStream
:
using (var stream = new MemoryStream(result))
{
var doc = XDocument.Load(stream);
...
}
答
你可以把字节转换成字符串:
string xml = Encoding.UTF8.GetString(result);
,然后分析它:
XDocument doc = XDocument.Parse(xml);
只是并称的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