XmlDocument与XmlWriter的区别

17

我看到您可以使用XmlDocument或XmlWriter创建XML文件。

那么,是否有一种方法比另一种更好呢?

4个回答

22
XmlWriter 可以流式编写 XML 数据。当需要生成 XML 文档且不想使用与文档大小成比例的内存时,可以使用 XmlWriter。而在需要处理 XML 的内存中时,则需要使用 XmlDocument。例如:解析现有的 XML 文档到对象模型、在任意位置创建元素、更新现有文档或使用 XPath 搜索文档时。对于后一种情况,您将使用 XPathDocument,但无论如何您都不能使用 XmlWriter,因为它是只写的。当然,您也可以使用 XmlDocument 将数据写入流中。但实际上,XmlDocument 内部也是使用 XmlWriter 来完成这一操作的。

由于99%的情况下,XmlWriter将与一种类似于MemoryStream的后备存储一起使用,因此内存大小差异可以忽略不计。然而,重要的是XmlDocument可以根据模式进行验证。 - ajeh

5

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


4
如果您支持.Net Framework 3.5,我建议您使用XDocument和XElement进行操作。它是一个更加简单和友好的API。

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接