我们必须从 aspx 页面读取数据。当我们使用查询字符串调用页面时,它会返回一个包含与查询字符串匹配的数据的 xml 文档。
我们有一个与我们返回的 xml 相匹配的 XSD。
我认为我们可以从 http 响应中读取 xml 文档。这行得通吗?
我们如何绑定(bind) XML 与 XSD,以便我们可以将 XML 文档视为强类型文档?
谢谢,
设拉子
更新:
找到有关如何反序列化的链接
最佳答案
嗯,基本上,您可以像这样请求一个 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 模式验证它,或者只是尝试将其反序列化为您拥有的 XSD 模式所表示的类型。
如果可行 --> 您获得的 XML 有效且正常。否则,您将获得反序列化异常。
马克
关于c# - 从 aspx 网页读取 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1443858/