来自 Jon Skeet 的文章。
如果您乐于将所有内容读入内存,请使用 XDocument。它会让你的生活更轻松。LINQ to XML 是一个可爱的 API。
如果您需要以流方式处理大型 XML 文件,基本上可以使用 XmlReader(例如 XmlTextReader)。这是一个更痛苦的 API,但它允许流式传输(即只处理您需要的数据,因此您可以浏览一个巨大的文档并且一次只有少量内存)。
但是,有一种混合方法 - 如果您有一个由小元素组成的大型文档,您可以从位于元素开头的 XmlReader 创建一个 XElement,使用 LINQ to XML 处理该元素,然后将 XmlReader 移动到下一个元素并重新开始。
乔恩斯基特描述
Check the Example below
// Create a DOM document with some content.
XmlDocument doc = new XmlDocument();
XmlElement child = doc.CreateElement("Child");
child.InnerText = "child contents";
XmlElement root = doc.CreateElement("Root");
root.AppendChild(child);
doc.AppendChild(root);
// Create a reader and move to the content.
using (XmlNodeReader nodeReader = new XmlNodeReader(doc)) {
// the reader must be in the Interactive state in order to
// Create a LINQ to XML tree from it.
nodeReader.MoveToContent();
XElement xRoot = XElement.Load(nodeReader);
Console.WriteLine(xRoot);
}
这只是一个例子,尝试类似的事情。