在性能方面用C#解析XML的最佳方法

在性能方面用C#解析XML的最佳方法,c#,.net,windows-phone-7,linq-to-xml,C#,.net,Windows Phone 7,Linq To Xml,我想知道解析XML的最佳方法,即性能(空间和时间) 我已经通过以下方法完成了解析 使用常规的“for each”循环 与林克 点表示法或λ表示法 I这是一个庞大而复杂的XML文件,您可以尝试使用SAX类型的XML解析器对其进行解析。SAX解析器将为XML文件中的每个节点生成一个事件,因此不需要将整个文件加载到内存中。对于一个小文件,例如在应用程序中应该作为web响应进行分析,并且必须进行验证,我建议您使用DOM类型的XML解析器 如果看不到您的代码,优化它是不容易的。但是,有一点您应该考虑:

我想知道解析XML的最佳方法,即性能(空间和时间)

我已经通过以下方法完成了解析

  • 使用常规的“for each”循环
  • 与林克
  • 点表示法或λ表示法

I这是一个庞大而复杂的XML文件,您可以尝试使用SAX类型的XML解析器对其进行解析。SAX解析器将为XML文件中的每个节点生成一个事件,因此不需要将整个文件加载到内存中。对于一个小文件,例如在应用程序中应该作为web响应进行分析,并且必须进行验证,我建议您使用DOM类型的XML解析器

如果看不到您的代码,优化它是不容易的。但是,有一点您应该考虑:

LINQtoXML是一种基于DOM的解析器,它将整个XML文档读入驻留在内存中的模型中。所有查询都是针对DOM执行的。对于大型文档,构建DOM可能会占用大量内存和CPU。此外,如果编写效率低下,Linq到XML查询可以多次导航相同的树节点

作为替代,考虑使用串行(SAX)解析器。这种类型的解析器不会创建文档的基于内存的模型,而是以只向前的方式操作,迫使您只读取每个元素一次