一次读取50行的xml文件

时间:2013-04-02 11:08:37

标签: c# xml streamreader xmlreader

目前尝试制作一个方法来读取XML文件,此时一次50行,这将增加,以允许在程序中使用更大的文件。

目前我正尝试使用以下代码完成此操作。

 List<dataclass.DataRecord> list = new List<dataclass.DataRecord>();
 string filename = "FileLocation"
 XmlDocument testing = new XmlDocument();

 //using (StreamReader streamreader = new StreamReader(filename))
 using (XmlTextReader reader = new XmlTextReader(new StringReader(filename)))
 {
   while (reader.Read() != null)
   {
    for (int i = 0; i < 50; i++)
    {
     testing.Load(reader);

     //list.add(line);
     Console.WriteLine(testing);
     //testing.Load(reader);
     }
   }
 }

注释的行只是我用来实现目标的先前想法,文件名已被删除,因为我不想将其放在网上。

基本上我一直收到以下错误:

根级别的数据无效。第1行,第1位。

所以我不知道我是不是:

一个。以正确的方式解决这个问题。

B中。修复此错误的唯一方法是通过“root + / root”标记包围“testing.load”

希望有人可以帮助感谢。

3 个答案:

答案 0 :(得分:0)

如果您只是尝试将xml加载到XmlDocument中 - 为什么不只是

 XmlDocument testing = new XmlDocument();
 testing.Load(filename);

答案 1 :(得分:0)

如果您的XML文件非常大,那么最好使用某种拉解析器(逐个标记,逐个属性解析等)而不是DOM解析器(在解析过程中加载整个文档,保持它在记忆中)。

答案 2 :(得分:0)

正如我在评论中解释的那样,XML由节点组成,而您正在查看它,就好像它是带有行的平面文件一样。

有一些Stackoverflow问题的答案与您尝试的内容相符。真正的问题是“如何加载大型XML文件”。答案是使用流而不是加载到一个大块中,然后从那里可以找到有关使用XmlReader的大量资源。

指向其他SO文章的指点:

C# and Reading Large XML Files

Reading large XML documents in .net

希望有所帮助!

相关问题