目前尝试制作一个方法来读取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”
希望有人可以帮助感谢。
答案 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
希望有所帮助!