【问题标题】:Reading xml from aspx web page从aspx网页读取xml
【发布时间】:2010-11-29 10:54:44
【问题描述】:

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

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

我认为我们可以从 http 响应中读取 xml 文档。这行得通吗?

我们如何绑定 XML 与 XSD,以便我们可以将 XML 文档视为强类型?

谢谢,

设拉子

更新:

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

Deserializing XML to Objects in C#

【问题讨论】:

    标签: c# asp.net xml http xsd


    【解决方案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 是有效的并且没问题。如果没有,您将在反序列化时遇到异常。

    马克

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多