2009-09-18 139 views
3

我們必須從aspx頁面讀取數據。當我們用查詢字符串調用頁面時,它返回一個xml文檔,其中的數據與查詢字符串匹配。從aspx網頁讀取xml

我們有一個與我們找回的xml匹配的XSD。

我在想,我們可以從http響應中讀取xml文檔。這會工作嗎?

我們怎樣才能綁定的XML與XSD,使我們可以對待的XML文件,如果它是強類型?

感謝,

西拉

更新:

上找到如何反序列化

Deserializing XML to Objects in C#

回答

3

嗯,基本上,你可以請求XML文檔的東西這個鏈接像這樣(沒有嘗試/趕上這裏 - 但你應該確定):

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url); 
myRequest.Method = "POST"; // or GET - depends 

myRequest.ContentType = "text/xml; encoding=utf-8"; 
myRequest.ContentLength = data.Length; 

using (Stream reqStream = myRequest.GetRequestStream()) 
{ 
    // Send the data. 
    reqStream.Write(data, 0, data.Length); 
    reqStream.Close(); 
} 

// Get Response 
WebResponse myResponse; 

myResponse = myRequest.GetResponse(); 
XmlDocument _xmlDoc = new XmlDocument(); 

using (Stream responseStream = myResponse.GetResponseStream()) 
{ 
    _xmlDoc.Load(responseStream); 
} 

無論你有一個GET或POST取決於你的方案 - 在一個GET,你不會有請求數據出去。

將XML恢復爲XmlDocument後,您可以根據XML模式驗證它,也可以嘗試將其反序列化爲由您擁有的XSD模式表示的類型。

如果這樣的話 - >你得到的XML是有效的,可以。如果不是,你會在反序列化中遇到一個異常。

Marc