c# - XmlTextReader 与 XDocument

标签 c# .net xml linq-to-xml xmltextreader

我可以在 .NET 中解析 XML。现在我至少可以在 XmlTextReaderXDocument 之间做出选择。这两者(或框架中包含的任何其他 XML 解析器)之间是否有任何比较?

也许这可以帮助我在不深入尝试两者的情况下做出决定。

预计 XML 文件相当小,与易用性相比,速度和内存使用是次要问题。 :-)

(我打算在 C# 和/或 IronPython 中使用它们。)

谢谢!

最佳答案

如果您乐于将所有内容读入内存,请使用 XDocument。它会让您的生活变得更轻松。 LINQ to XML 是一个可爱的 API。

基本上,如果您需要以流方式处理巨大 XML 文件,请使用XmlReader(例如XmlTextReader)。这是一个更痛苦的 API,但它允许流式传输(即仅在您需要时处理数据,因此您可以浏览一个巨大的文档并且一次只有少量内存)。

然而,有一种混合方法 - 如果您有一个由小元素组成的大文档,您可以从位于元素开头的 XmlReader 创建一个 XElement元素,使用 LINQ to XML 处理该元素,然后将 XmlReader 移动到下一个元素并重新开始。

关于c# - XmlTextReader 与 XDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8096564/

相关文章:

java - Apache POI 删除 CTHyperlink [低级代码]

c# - 从 Word 粘贴 + 创建 XML 文档 -> 十六进制值 0x0C,是无效字符 (.Net)

c# - 自定义成员资格/角色/配置文件提供程序而不继承 MembershipProvider、RoleProvider 等?

c# - 在默认的 ASP.Net MVC 模板中,为什么用户每次更改某些内容时都会重新登录?

.net - 托管 .Net Core 和 Angular 应用程序的最佳方式?

.net - 显示不在页面中的字段的 ValidationSummary

c# - 在 Gridview 中,我想捕获所选行的列 ID 值

c# - 如何使用相对路径引用 WSDL 文件?

mysql - Visual Studio 报告连接到 MySQL 时超时

java - JAXB "If a class has @XmlElement property, it cannot have @XmlValue property."