2011-10-11 12 views
6

私はサードパーティのサービスに電話をかけていて、Xmlとしてその応答を送信します。しかし、私がWebClientを使ってサービスを呼び出すときに得られる応答はバイト配列です。WebClientからByte Arrayレスポンスを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); 
関連する問題