XElement保存问题

时间:2010-10-21 14:18:08

标签: c# xml save

我必须每隔几分钟创建一个备份XML文件,这是当前的代码:

            XElement xml = new XElement("Items",
            new XElement("Backup",
            new XElement("Console", consoleName),
            new XElement("Begin", beginTime),
            new XElement("End", endTime),
            new XElement("Time", totalTime),
            new XElement("Price", totalPrice)

            xml.Save("Items.xml");

问题是它每次都重新创建XML文件,因此只保存最后一个项目。我错过了什么?感谢。

2 个答案:

答案 0 :(得分:4)

将节点附加到现有的.xml文件。
首先,使用空子元素创建Items.xml。

<?xml version="1.0" encoding="utf-8"?>
<Items>
</Items>

接下来,使用此代码加载Items.xml并将节点附加到它。

XElement xml = new XElement("Backup",
new XElement("Console", consoleName),
new XElement("Begin", beginTime),
new XElement("End", endTime),
new XElement("Time", totalTime),
new XElement("Price", totalPrice));

XDocument xdoc = XDocument.Load("Items.xml");
xdoc.Element("Items").Nodes().Last().AddAfterSelf(xml);  //append after the last backup element
xdoc.Save("Items.xml");

答案 1 :(得分:1)

我已经尝试过这段代码(在更改变量之后)并且它正常工作:

    XElement xml = new XElement("Items",
        new XElement("Backup",
        new XElement("Console", "aa"),
        new XElement("Begin", "bb"),
        new XElement("End", "cc"),
        new XElement("Time", "dd"),
        new XElement("Price", "ee")));

    xml.Save(@"C:\Items.xml");