Modifier un fichier XML

Résolu
cybers7119 Messages postés 20 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 19 janvier 2009 - 24 juin 2008 à 15:41
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 24 juin 2008 à 21:40
Bonjour,


Je suis en train de travailler en C#, et je souhaiterais lire un document XML existant et ajouter une nouvelle balise à un endroit précis. Mon fichier XML ressemble à cela :

   <documents>
      <data name="A" valeur="val">
      <data name="B" valeur="val">
      <data name="C" valeur="val">
   </documents>

Ce que je souhaite, c'est ajouter une nouvelle balise du type "<data ... >", avec son nom et sa valeur, comme ci-dessus.
J'ai déjà trouvé le code suivant, qui me permet (je crois) de lire le fichier XML :


XmlDocument L_doc =
new
XmlDocument();


L_doc.Load(@"C:\data.xml");



XmlNodeReader
L_nodeReader =

new



XmlNodeReader
(L_doc);




DataSet
mon_data_set =

new



DataSet
();



mon_data_set.ReadXml(L_nodeReader);

Mais après, je ne sais pas comment accéder à la balise souhaitée et y ajouter de nouvelles données.

Quelqu'un aurait une idée ?

Merci

2 réponses

cybers7119 Messages postés 20 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 19 janvier 2009 2
24 juin 2008 à 16:32
En fait, ça y est, j'ai trouvé une méthode qui marche.
La voilà pour ceux que ça intéresse :

XmlDocument L_doc =
new
XmlDocument
();

string file =
@"C:\data.xml" ;
L_doc.Load(file);

XmlElement root = L_doc.DocumentElement;

XmlNode doc = root.SelectSingleNode(
"documents");

XmlNode data= L_doc.CreateNode(
XmlNodeType.Element,
"data",
"");

XmlAttribute newAttr1 = L_doc.CreateAttribute(
"name");
newAttr1.Value =
"A";

XmlAttribute newAttr2 = L_doc.CreateAttribute(
"valeur");
newAttr2.Value =
"val";
data.Attributes.Append(newAttr1);
data.Attributes.Append(newAttr2);
doc.AppendChild(data);
L_doc.Save(file);
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
24 juin 2008 à 21:40
Si tu es en .NET 3.5, tu peux regarder du côté de Linq2Xml

<hr />
-My Blog-
0
Rejoignez-nous