如何读取内存有限的xml文件?

时间:2011-06-09 10:06:05

标签: c#

            var q = from n in XElement.Load(Application.StartupPath + "..\\..\\..\\2.xml").Elements()
                    select n;
            foreach (var q0 in q)
            {
                string str = q0.ToString();
            }

问题是我的xml文件太大了,所以我如何管理这段代码来逐渐加载它。现在我用c#跟踪它将所有文件完全加载到“q”中,然后在“str”中加载一些大节点。我的内存有限,我需要一点一点地从文件加载。我不知道我有多少节点,但我知道文件的一般结构。

2 个答案:

答案 0 :(得分:3)

您将使用XmlReader。使用它的问题是处理完全不同,你不能使用LINQ。

答案 1 :(得分:3)

不是一次读取内存中的整个XML文件然后迭代它,而是查看XmlReader类及其衍生物。这些允许您遍历每个节点的XML节点。

XmlTextReader是从文本文件中读取XML的特定衍生产品。

查看http://support.microsoft.com/kb/307548