随笔 - 79, 评论 - 66, 访问 - 391606

导航


  • 访问:391606次
  • 积分:836分
  • 排名:第15名
  • 随笔:79篇
  • 评论:66条

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

好饱 阅读(574) 评论(0)

如果文档内容不大,允许所有内容读入内存,推荐使用XDocument,LINQ to XML是非常棒的。

如果需要以流的方式处理大型XML文件,可以使用XmlReader(例如XmlTextReader),处理大型文档时只需要占用少量内存。
还有一种混合方法: 如果你有一个由小元素组成的巨大文档,你可以在元素的开头从XmlReader定位处创建XElement,使用LINQ to XML处理元素,然后移动XmlReader到下一个元素重新开始。

 

根据XmlTeam的msdn博客的建议:
避免使用XmlTextReader和XmlTextWriter。它包含了一些在不破坏已经使用它的现有应用程序的情况下无法修复的错误。
我们在这些类中发现了许多错误,我们无法在不破坏现有应用程序的情况下修复这些错误。简单的方法是弃用这些类,并要求人们使用替换API。不幸的是,这两个类不能被标记为过时,因为它们是ECMA-335(公共语言基础结构)标准(http://www.ecma-international.org/publications/standards/Ecma-335.htm)的一部分。

好消息是,尽管这些类没有被弃用,但在.NET Framework中已经有了替代类,并且替换它们比较容易。首先,有必要找到XmlTextReader或XmlTextWriter正在使用的地方(不幸的是,这是一个手动步骤)。现在,所有XmlTextReader应改为XmlReader和所有XmlTextWriter应改为XmlWriter(注意,XmlTextReader从XmlReader派生和XmlTextWriter从XmlWriter派生)。最后一步是更改XmlReader/ XmlWriter对象的实例化方式 - 而不是直接创建读取器/写入器.Create(),两者都需要静态工厂方法XmlReader和XmlWriter API。


发表评论
切换编辑模式