2010-11-24 69 views
2

在C#中,我試圖調用一個返回XML文件的webservice。如何將Streamreader數據轉換爲XmlDocument?

我可以製作一個HttpWebRequest到web服務並將輸出存儲在StreamReader中。但是,我怎樣才能將這些數據轉換成XMLDocument?

+0

這是一個基於SOAP的Web服務嗎?那麼你不應該使用HttpWebRequest。只需使用「添加服務引用」並調用爲您創建的代理類的「方法」 - 不涉及XML。 – 2010-11-24 21:51:27

+0

它是一個RESTful服務 – Troyes22 2010-11-24 23:16:27

回答

7

使用XmlDocument.Load() - 我用一個接受XmlReader現金對XmlReader.Create的自動編碼檢測過載:

XmlDocument document = new XmlDocument(); 
using(Stream stream = request.GetResponse().GetResponseStream()) {   
    using(XmlReader reader = XmlReader.Create(stream)) { 
     document.Load(stream); 
    } 
} 
+2

這假定響應流編碼與XML編碼相同。它不一定是。 – 2010-11-24 21:29:27

1

使用System.Xml.Linq.XDocument.Load(streamreader);

0

您應該接收的輸出存儲在StringWriter的或只是一個stringand的使用XmlDocument.Load(string)加載它。