我有一个处理XML
个文件的类。它有效,但问题在于,RAM
正在处理所有内容。我需要做一些事情(比如使用XmlWriter
类)来保存HDD
,同时创建一个新的XML
文件(数据非常大,这就是原因)。< / p>
如何以最好的方式做到这一点?我希望没有必要将XDocument
更改为XmlDocument
:/
例如 - 我在下面有XML
结构,我想添加一个节点,将其保存到文件中,处理元素,然后创建一个新节点,保存它。 ..等等。
<root>
<element no='1' />
<element no='2' />
<element no='3' />
<element no='4' />
</root>
答案 0 :(得分:2)
我自己没有这样做,但this article应该有所帮助,是的,你可以继续使用XDocument。
来自文章:
第二个改进是LINQ to XML能够将文档方法与XmlReader方法相结合。使用静态方法XNode.ReadFrom,它接受XmlReader并返回读者当前位置的XNode对象,我们可以逐个创建XNode元素,并根据需要处理它们。您仍然没有将整个文档加载到内存中,但您可以轻松使用文档。
在文章中,作者正在讨论文档中的阅读,而您正在谈论撰写。不过,我认为这里的关键是 XNode class ,它还有一个 WriteTo 方法(huzzah!)。
答案 1 :(得分:0)
您可以通过XmlWriter保存XDocument:
using (var xw = XmlWriter.Create(...))
{
var xDoc = new XDocument(...);
xDoc.Save(xw);
}
答案 2 :(得分:-1)
您可以使用保存方法,请参阅msdn