XElement Сохранить вопрос - PullRequest
       4

XElement Сохранить вопрос

1 голос
/ 21 октября 2010

Мне нужно каждые несколько минут создавать резервный файл 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 ]

4 голосов
/ 21 октября 2010

Чтобы добавить узел в существующий 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 голос
/ 21 октября 2010

Я попробовал этот код (после изменения переменных), и он работал правильно:

    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");
...