2010-10-21 26 views
1

我要創建每隔幾分鐘XML備份文件,這裏是當前的代碼:的XElement保存問題

  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文件每次,因此僅被保存的最後一個項目。我錯過了什麼?謝謝。

回答

3

要追加節點,以現有的.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"); 
+0

我不想創建多個xml文件。我想將數據存儲到一個單一的,是不是有辦法將它追加到一個已經存在的XML文件? – xmlfoo 2010-10-21 14:37:01

+0

我編輯了我的答案。 – bla 2010-10-21 14:55:20

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"); 
+1

請重新閱讀問題。 – xmlfoo 2010-10-21 14:36:23