从aspx网页读取xml

时间:2009-09-18 11:04:32

标签: c# asp.net xml http xsd

我们必须从aspx页面读取数据。当我们使用查询字符串调用页面时,它返回一个xml文档,其中包含与查询字符串匹配的数据。

我们有一个与我们回来的xml相匹配的XSD。

我在想我们可以从http响应中读取xml文档。这有用吗?

我们如何将XML与XSD绑定,以便我们可以将XML文档看作是强类型的?

谢谢,

西拉

更新

找到关于如何反序列化的链接

Deserializing XML to Objects in C#

1 个答案:

答案 0 :(得分:3)

嗯,基本上,你可以请求这样的XML文档(这里没有try / catch - 但你一定要加上它!):

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架构验证XML,或者只是尝试将其反序列化为您拥有的XSD架构所代表的类型。

如果有效 - >你得到的XML是有效的,没问题。如果没有,您将获得反序列化的例外。

马克

相关问题