更新:
使用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进行读取.