【问题标题】:How to convert Streamreader data to XmlDocument?如何将 Streamreader 数据转换为 XmlDocument?
【发布时间】:2010-11-24 21:13:56
【问题描述】:

在 C# 中,我试图调用一个返回 XML 文件的 web 服务。

我可以向网络服务发出 HttpWebRequest 并将输出存储在 StreamReader 中。但是如何将这些数据转换为 XMLDocument?

【问题讨论】:

  • 这是一个基于 SOAP 的 Web 服务吗?那么你不应该使用 HttpWebRequest。只需使用“添加服务引用”并调用为您创建的代理类的“方法” - 不涉及 XML。

标签: c# xml streamreader


【解决方案1】:

使用XmlDocument.Load() - 我正在使用接受XmlReader 的重载来兑现XmlReader.Create 的自动编码检测:

XmlDocument document = new XmlDocument();
using(Stream stream = request.GetResponse().GetResponseStream()) {        
    using(XmlReader reader = XmlReader.Create(stream)) {
        document.Load(stream);
    }
}

【讨论】:

  • 假设响应流编码与 XML 编码相同。不必如此。
  • 我注意到,当您创建 XmlReader 时,您仍然只是将原始“流”对象传递给 document.Load()
【解决方案2】:

使用 System.Xml.Linq.XDocument.Load(streamreader);

【讨论】:

    【解决方案3】:

    您应该将接收到的输出存储在 StringWriter 中,或者只是一个字符串,然后使用 XmlDocument.Load(string) 加载它。

    【讨论】:

    • 因为他想存储它:)。实际上我会选择上面 Jeff 的解决方案。
    猜你喜欢
    • 2014-05-15
    • 2010-12-02
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2014-05-22
    • 2011-08-17
    • 2011-01-13
    • 2012-01-26
    相关资源
    最近更新 更多