你的位置:首页 > ASP.net教程

[ASP.net教程]XmlReader和XElement组合之读取大型xml文档


简介

在.NET framework 中存在大量操作

linq to

对于大型的

思路

XElement类有一个方法ReadFrom,此方法接受一个

在上面的链接MSDN上,其实已经有了对应的组合方式了,而且名字也不错:执行大型

static IEnumerable<XElement> StreamXElements(string uri, string matchname){  

 以上代码就是用

这样目前为止,so far so good.

但在测试的时候,发现此方法有一个比较严重的bug,每次读取一个XElement之后就会跳过一个XElement:


再回到我们上面的代码,其实在XElement.ReadFrom(reader)构建XElement之后,内部已经read了一次,但在while语句中我们还是在reader,这样下一个XElement是不会读到的。

那知道原因之后,解决起来也简单了,这里就用reader.EOF 做判断条件并去掉多余的一次read,具体代码如下:

static IEnumerable<XElement> StreamXElements(string uri, string matchname){  

 总结

组合

http://stackoverflow.com/questions/2299632/why-does-

https://msdn.microsoft.com/en-us/library/mt693229.aspx

http://stackoverflow.com/questions/2441673/reading-

https://blogs.msdn.microsoft.com/