【问题标题】:Deserializing XML from the web从 Web 反序列化 XML
【发布时间】:2013-05-26 21:25:56
【问题描述】:

通常,这是我反序列化 XML 文件的方式:

    string location = "C:\\test.xml";
    XmlObjectClass member_data = new XmlObjectClass();

                using (Stream XmlStream = new FileStream(location,FileMode.Open))
                {
                    data = (XmlObjectClass)serializer.Deserialize(XmlStream);
                }

这在我反序列化 XML 文件时有效,但如果我想反序列化 Web 请求返回的 XML(即转到 URL)怎么办?

【问题讨论】:

    标签: c# xml xml-serialization


    【解决方案1】:

    嗯,有几个选择:

    • XmlReader.Create(uri) 创建一个XmlReader 并直接反序列化
    • WebClientHttpWebRequest获取流,并从流中反序列化
    • 获取所有数据,然后使用 MemoryStream 围绕它构建一个流并从中反序列化

    如果您不需要对 Web 请求执行任何特殊操作 - 即它实际上只是来自 URI 的“GET” - 那么第一个选项可能是最简单的。

    【讨论】:

      【解决方案2】:

      如果响应保存在内存中,您可以使用MemoryStreamStringReader 或适合数据格式和XmlSerializer.Deserialize() method 功能的此类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 2018-11-23
        • 1970-01-01
        • 2017-06-24
        • 2012-03-04
        相关资源
        最近更新 更多