【发布时间】:2009-11-02 10:07:15
【问题描述】:
我知道您可以使用 XmlDocument 或 XmlWriter 创建 xml 文件。
使用一种方法比另一种方法有什么好处吗?
【问题讨论】:
我知道您可以使用 XmlDocument 或 XmlWriter 创建 xml 文件。
使用一种方法比另一种方法有什么好处吗?
【问题讨论】:
XmlWriter 对 XML 数据进行基于流的写入。 XmlDocument 将 XML 数据构建为内存中的对象模型。
当您需要生成 XML 文档而不使用与文档大小成正比的内存时,您可以使用XmlWriter。当您需要在内存中处理 XML 时使用 XmlDocument - 当您将现有 XML 文档解析为对象模型时,或者您在任意位置创建元素,或者更新现有文档,或者使用 XPath 搜索时一份文件。 (实际上,对于后一种情况,您可以使用XPathDocument,但无论如何您不能使用XmlWriter,因为它是只写的。)
当然可以使用XmlDocument 将XML 数据写入流。但是您实际上是在使用 XmlWriter 来执行此操作,因为这是 XmlDocument 在内部使用的。
【讨论】:
XmlWriter 将与 MemoryStream 类型的支持一起使用,内存大小差异可以忽略不计。然而重要的是,XmlDocument 可以针对架构进行验证。
这取决于您的情况。 XmlDocument 将整个文档加载到内存中,而XmlWriter 使用流,因此更适合处理大型 XML 文档。另一方面,XmlDocument 可能更易于使用。
【讨论】:
如果您支持 .Net Framework 3.5,我建议您改用 XDocument 和 XElement。这是一个更简单、更友好的 API
【讨论】:
XmlDocument 将洞数据存储在内存中,因此文件大(500 mb 或更大)时速度较慢,但易于使用 XmlWriter 直接写入流
【讨论】: