.net – 解析Xml最有效的方法

前端之家收集整理的这篇文章主要介绍了.net – 解析Xml最有效的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
.Net框架现在有(至少)四种不同的读取Xml字符串的方法.我已经使用XmlDocument,XmlReader,XPath和XElement中的每一个,但是在编码或执行时最有效的使用哪一个?每个都是为了不同的任务设计的,有什么优缺点?

更新:
使用XmlReader似乎是读取xml的最快速方式,这对我来说是合理的,但是有其局限性.我想知道XmlDocument和XLinq之间是否存在任何性能差异,用于非顺序访问xml.

更新:
我发现一些帖子比较了加载xml文档的不同方法. XmlReader是最快的,XmlDocument和LINQ to XML之间存在着微不足道的差异,直到你加载了一个10,000个节点的文档,其中LINQ to XML出现在前面.

> http://www.nearinfinity.com/blogs/page/jferner?entry=performance_linq_to_sql_vs
> http://www.hanselman.com/blog/AtAGlanceXmlReaderVsXPathNavigatorVsXmlDocument.aspx

三种最常见的方法是:

的XmlDocument
它以树结构读取整个文件,然后可以使用XPath或浏览所有节点进行访问.由于整个XML结构必须加载到内存中,所以需要大量的内存来存储大量文件.对于较小的文件(不到几个megs),使用起来非常好,简单.

的XmlReader
快,但也是一个真正的痛苦使用,因为它是顺序的.如果你需要回去,你不能,而XML结构通常很容易出现组织乱序.另外,如果你从一个非结尾的XML流中读取,这可能是唯一的办法.

XML串行器
这基本上为您做了一切,您提供了模型的根对象,并为您创建和读取XML.但是,您几乎无法控制结构,并且读取旧版本的对象是一种痛苦.所以这对于持久性来说不会很好.

XDocument和LINQ to XML
正如Daniel Straight指出的那样.但我不知道足够评论.我邀请任何人编辑帖子,并添加缺少的信息.

现在写作是另一个故事.维护一个XmlDocument是一件很痛苦的事情,XmlWriter可以轻松使用.

根据我的经验,我会说,最好的组合是使用XmlWriter编写并使用XmlDocument进行读取.

猜你在找的XML相关文章