2011-10-11 9 views
6

Dzwonię do usługi innej firmy i wysyłają odpowiedź jako Xml. Jednak, ponieważ używam WebClient do wywoływania usługi, odpowiedź, którą otrzymuję, jest tablicą bajtów.Jak przekonwertować odpowiedź tablicy bajtów z WebClient na Xml?

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

wynikiem jest tablica bajtów. Jak przekonwertować go do formatu XML, aby odczytać odpowiedź udzieloną przez usługę innej firmy?

Odpowiedz

7

Użyj MemoryStream:

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

Wystarczy dodać, że XDocument tu nie ma z System.Xml.Linq namespace http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx, ale normalny dokument Xml, który być załadowanym ze strumienia pamięci, jak pokazano tutaj http://blogs.msdn.com/b/tolong/archive/2007/11/15/read-write-xml-in-memory-stream.aspx – shashi

8

Można włączyć bajtów na ciąg znaków:

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

a następnie analizować je:

XDocument doc = XDocument.Parse(xml); 
Powiązane problemy