【问题标题】:XmlDocument vs XmlWriterXmlDocument 与 XmlWriter
【发布时间】:2009-11-02 10:07:15
【问题描述】:

我知道您可以使用 XmlDocument 或 XmlWriter 创建 xml 文件。

使用一种方法比另一种方法有什么好处吗?

【问题讨论】:

    标签: c# .net xml


    【解决方案1】:

    XmlWriter 对 XML 数据进行基于流的写入。 XmlDocument 将 XML 数据构建为内存中的对象模型。

    当您需要生成 XML 文档而不使用与文档大小成正比的内存时,您可以使用XmlWriter。当您需要在内存中处理 XML 时使用 XmlDocument - 当您将现有 XML 文档解析为对象模型时,或者您在任意位置创建元素,或者更新现有文档,或者使用 XPath 搜索时一份文件。 (实际上,对于后一种情况,您可以使用XPathDocument,但无论如何您不能使用XmlWriter,因为它是只写的。)

    当然可以使用XmlDocument 将XML 数据写入流。但是您实际上是在使用 XmlWriter 来执行此操作,因为这是 XmlDocument 在内部使用的。

    【讨论】:

    • 在 99% 的情况下,XmlWriter 将与 MemoryStream 类型的支持一起使用,内存大小差异可以忽略不计。然而重要的是,XmlDocument 可以针对架构进行验证。
    【解决方案2】:

    这取决于您的情况。 XmlDocument 将整个文档加载到内存中,而XmlWriter 使用流,因此更适合处理大型 XML 文档。另一方面,XmlDocument 可能更易于使用。

    【讨论】:

      【解决方案3】:

      如果您支持 .Net Framework 3.5,我建议您改用 XDocument 和 XElement。这是一个更简单、更友好的 API

      【讨论】:

        【解决方案4】:

        XmlDocument 将洞数据存储在内存中,因此文件大(500 mb 或更大)时速度较慢,但​​易于使用 XmlWriter 直接写入流

        【讨论】:

          猜你喜欢
          • 2010-11-23
          • 2011-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-21
          • 2012-02-21
          • 2011-10-16
          • 1970-01-01
          相关资源
          最近更新 更多