0

目前正在尝试创建一种方法来一次读取 50 行 XML 文件,这将增加以允许在程序中使用更大的文件。

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

 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。

所以我不知道我是不是:

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

B. 修复此错误的唯一方法是用“root + /root”标签包围“testing.load”

希望有人能帮忙谢谢。

4

3 回答 3

0

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

 XmlDocument testing = new XmlDocument();
 testing.Load(filename);
于 2013-04-02T11:14:06.137 回答
0

如果您的 XML 文件非常大,最好使用某种拉式解析器(逐个标签、逐个属性解析等)而不是 DOM 解析器(在解析期间加载整个文档,将其保存在内存中)。

于 2013-04-02T12:23:15.337 回答
0

正如我在评论中解释的那样,XML 由节点组成,而您将其视为带有线条的平面文件。

有几个 Stackoverflow 问题的答案与您尝试做的事情相匹配。真正的问题是“如何加载大型 XML 文件”。答案是使用流而不是加载一大块,从那里你可以找到很多关于使用XmlReader的资源。

指向其他 SO 文章的几个指针:

C# 和读取大型 XML 文件

在 .net 中读取大型 XML 文档

希望有帮助!

于 2013-04-02T12:45:16.710 回答