C# 使用xml的最佳方式是什么?

C# 使用xml的最佳方式是什么?,c#,.net,xml,C#,.net,Xml,使用表示树的xml文件的最佳方法是什么。 xml大小为70mb。如果您想从一个大xml文件中读取数据,XmlTextReader是一个好办法。如果您想从一个大xml文件中读取数据,XmlTextReader是一个好办法。对于.NET 3.5及更高版本,我更喜欢使用它来处理xml文件。对于.NET 3.5及更高版本,我更喜欢使用XML文件来处理我的所有工作。答案取决于您想对XML做什么。一般来说,对于这样大小的文件,您不希望一次读取所有文件。因此,下面的页面进行了有趣的读取,提供了一种从文件中挖掘

使用表示树的xml文件的最佳方法是什么。
xml大小为70mb。

如果您想从一个大xml文件中读取数据,
XmlTextReader
是一个好办法。

如果您想从一个大xml文件中读取数据,
XmlTextReader
是一个好办法。

对于.NET 3.5及更高版本,我更喜欢使用它来处理xml文件。

对于.NET 3.5及更高版本,我更喜欢使用XML文件来处理我的所有工作。

答案取决于您想对XML做什么。一般来说,对于这样大小的文件,您不希望一次读取所有文件。因此,下面的页面进行了有趣的读取,提供了一种从文件中挖掘数据的方法,而无需将其加载到内存中。它允许您将XmlReader的速度与Linq的灵活性结合起来:

这是一篇基于这种技术的非常有趣的文章:


答案取决于您想对XML做什么。一般来说,对于这样大小的文件,您不希望一次读取所有文件。因此,下面的页面进行了有趣的读取,提供了一种从文件中挖掘数据的方法,而无需将其加载到内存中。它允许您将XmlReader的速度与Linq的灵活性结合起来:

这是一篇基于这种技术的非常有趣的文章:


如果您希望在内存中查询它,LinqToXml可能是一个不错的选择,但是如果您发现您的内存占用有多大,您可以使用XMLReader

Linq到XML
  • 较大文档的速度较慢(内存占用较大)
  • 可质疑
XmlTextReader
  • 快速
  • 一次只有一行,因此没有查询

如果您希望在内存中查询它,LinqToXml可能是一个不错的选择,但是如果您发现您的内存占用有多大,您可以使用XMLReader

Linq到XML
  • 较大文档的速度较慢(内存占用较大)
  • 可质疑
XmlTextReader
  • 快速
  • 一次只有一行,因此没有查询

Linq to XML是当前处理XML最简单的方法,但这通常会将Entire树加载到内存中,在您使用70mb文件的情况下,这可能并不理想。

但是,有一些方法可以解决这一问题,如中所示,Linq to XML是当前处理XML最简单的方法,但这通常会将Entire树加载到内存中,在您使用70mb文件的情况下,这可能并不理想。

但是,有一些方法可以解决这个问题,如

中所示,因为您已经在使用DOM,您可以尝试的另一种XML解析器是SAX解析器。SAX解析器不是将整个树加载到内存中,而是事件驱动的,在遇到节点时处理节点等


进一步阅读:

由于您已经在使用DOM,您可以尝试的另一种XML解析器是SAX解析器。SAX解析器不是将整个树加载到内存中,而是事件驱动的,在遇到节点时处理节点等


进一步阅读:

Mick的技术(与我在回答中链接的技术相同)特别适合于大型XML文件。我必须处理大小为2-3GB的文件中的DB转储,这种技术使它变得更容易。Mick的技术(与我在回答中链接的技术相同)特别适合于大型XML文件。我必须处理大小为2-3GB的文件中的DB转储,这种技术使它变得更容易。如果您的xml文件有70mb,我认为您应该将数据管理到不同的小xml文件中。@ZainShaikh:胡说。我们经常使用许多千兆字节的XML文件。许多供应商将其数据发布为XML。如果您的XML文件大小为70mb,我认为您应该将数据管理为不同的小XML文件。@ZainShaikh:胡说。我们经常使用许多千兆字节的XML文件。许多供应商将他们的数据发布为XML。我想为这个问题找到一些索引解决方案。在文件中查找某些内容非常慢。我想找到解决此问题的索引解决方案。在文件中查找内容的速度非常慢。很好的链接,除非您经常使用xml,否则跟上技术可能是一项挑战。感谢链接这些文章!很好的链接,除非您经常使用xml,否则跟上技术的发展可能是一项挑战。感谢链接这些文章!