从aspx网页读取xml
Posted
技术标签:
【中文标题】从aspx网页读取xml【英文标题】:Reading xml from aspx web page 【发布时间】:2010-11-29 10:54:44 【问题描述】:我们必须从一个 aspx 页面读取数据。当我们使用查询字符串调用页面时,它会返回一个 xml 文档,其中包含与查询字符串匹配的数据。
我们有一个与我们返回的 xml 匹配的 XSD。
我认为我们可以从 http 响应中读取 xml 文档。这行得通吗?
我们如何绑定 XML 与 XSD,以便我们可以将 XML 文档视为强类型?
谢谢,
设拉子
更新:
找到这个关于如何反序列化的链接
Deserializing XML to Objects in C#
【问题讨论】:
【参考方案1】:嗯,基本上,您可以请求类似这样的 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 是有效的并且没问题。如果没有,您将在反序列化时遇到异常。
马克
【讨论】:
以上是关于从aspx网页读取xml的主要内容,如果未能解决你的问题,请参考以下文章