2010-10-21 2 views
1

Je dois créer un fichier XML de sauvegarde toutes les quelques minutes, voici le code actuel:XElement Enregistrer la question

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

Le problème est qu'il recrée le fichier XML à chaque fois, ainsi que le dernier élément en cours d'enregistrement . Qu'est-ce que je rate? Merci.

Répondre

3

Pour ajouter nœud fichier .xml existant.
Vous devez d'abord créer le fichier Items.xml avec des éléments enfants vides.

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

Ensuite, utilisez ce code pour charger Items.xml et y ajouter un nœud.

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

Je ne veux pas créer plusieurs fichiers XML. Je veux stocker les données en un seul, n'est-il pas un moyen de l'ajouter à un fichier XML déjà existant? – xmlfoo

+0

J'ai modifié ma réponse. – bla

1

J'ai essayé ce code (après avoir changé les variables) et cela a fonctionné correctement:

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

Veuillez relire la question. – xmlfoo