Modifier un xml qui exist ?

Résolu
iian2 Messages postés 103 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 21 septembre 2007 - 12 sept. 2007 à 15:21
iian2 Messages postés 103 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 21 septembre 2007 - 12 sept. 2007 à 20:23
Allo,

J'ai un petit probleme avec un xml je ne sas pas comment effacer des nodes pis par la suite en ajouter ? Je vais vous motrer la forme de mon xml et vous expliquer plus en detail:

<?xml version="1.0" encoding="utf-8"?>
<Start>
<Es type="Enum">
<E type="string" Atribut1="Verte">Pomme</E>
<E type="string" Atribut1="Rouge">Tomate</E>
<E type="string" Atribut1="Bleu">Radis</E>
</Es>
<Ds type="Enum">
<D type="string">20</D>
<D type="string">50</D>
<D type="string">80</D>
<D type="string">110</D>
<D type="string">140</D>
<D type="string">170</D>
</Ds>
</Start>

Bon en gros je veux effacer:
<E type="string" Atribut1="Verte">Pomme</E>
<E type="string" Atribut1="Rouge">Tomate</E>
<E type="string" Atribut1="Bleu">Radis</E>
Comment faire ?

Pis par la suite en ajouter comment faire ?

Je vous remercie d'avance

Merci d'avoir pris le temps de me lire pour pouvoir m'aider

Ian

8 réponses

Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
12 sept. 2007 à 15:44
Pour effacer :




XmlDocument doc = new XmlDocument();
doc.Load("fichier.xml");
doc.GetElementsByTagName("Es").Item(0).InnerText = "";
// tu supprime tous les noeuds enfants


doc.Save("fichier.xml");




Pour ajouter :




XmlElement elem = doc.CreateElement("element1");
elem.InnerText = "monElement";
doc.GetElementsByTagName("Es").Item(0).AppendChild(elem); //tu ajoute l'element en tant que noeud fils
doc.Save("fichier.xml");









"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein


<!--
3
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
12 sept. 2007 à 18:43
Tu me demande :

Si je veux que mon noeud fils resemble a ca:
<E type= "string" Atribut1="Verte">Pomme</E>
...

Pour ce faire, tu va devoir créer des attributs que tu ajoute à ton élément xml :

Code complet (ajout avec attributs)
<hr size ="2" width= "100%" />XmlDocument doc = new XmlDocument(); // on crée un document xml
doc.Load("fichier.xml"); // on charge note fichier xml dans le document xml

XmlElement elem = doc.CreateElement("E"); // on crée un nouvel élément
elem.InnerText = "Pomme"; // on donne une valeur à l'élément
           
XmlAttribute attrib; // on créer un type attribut
           
attrib = doc.CreateAttribute("Type"); // on crée un nouvel attribut portant le nom "Type"
attrib.Value = "String"; // on lui attribut la valeur "String"
elem.Attributes.Append(attrib); // on ajoute l'attribut à la liste des attributs de l'élément

attrib = doc.CreateAttribute("Attribut1"); // on crée un nouvel attribut portant le nom "Attribut1"
attrib.Value = "Verte"; // on lui attribut la valeur "Verte"
elem.Attributes.Append(attrib); // on ajoute l'attribut à la liste des attributs de l'élément

doc.GetElementsByTagName("Es").Item(0).AppendChild(elem); // on ajoute l'élément en tant que noeud fils
doc.Save("fichier.xml");  // on sauvegarde le document
<hr size="2" width="100%" />
Ce code fonctionne parfaitement chez moi, et la ligne retournée est bien celle que tu désire :
<E Type=" String "
Attribut1 ="Verte">Pomme</E>

J'espère que tu comprends maintenant tous les atouts disponibles dans le namespace XML !!
Bonne continuation.
"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
<!--
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
12 sept. 2007 à 15:31
Salut,
Regarde la class XmlDocument elle permet de modifier (ajout/suppression) le contenu d'un fichier XML.

<hr />
-Blog-
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2007 à 15:35
Salut,
As tu essayer en chargeant ton fichier XML dans un XMLDocument?
Cela devrait te permettre de parcourir tes nodes et de les supprimer suivant leur valeur je pense.

De meme cela devrait de permettre de pouvoir en ajouter à ton gré et d'ensuite pouvoir le sauver.

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2007 à 15:36
Re,
Et voila comme d'habitude je suis à la traîne.... raz le bol
Désolé pour le doublon du coup

@+: Ju£i?n
Pensez: Réponse acceptée
0
iian2 Messages postés 103 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 21 septembre 2007
12 sept. 2007 à 15:42
Allo,

Avec xmldocuments j'ai reussie a effacer mais ca efface en meme temps mon enum pis je sais pas trop comment la refaire

<?xml version="1.0" encoding="utf-8"?>
<Start>
<Es>
</Es>
<Ds type="Enum">
<D type="string">20</D>
<D type="string">50</D>
<D type="string">80</D>
<D type="string">110</D>
<D type="string">140</D>
<D type="string">170</D>
</Ds>
</Start>
0
iian2 Messages postés 103 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 21 septembre 2007
12 sept. 2007 à 15:51
Je vais tester la la si ca fonctionne tu va avoir ta reponse accepter

Merci pour le coups de main
0
iian2 Messages postés 103 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 21 septembre 2007
12 sept. 2007 à 20:23
Re: merci

Ian
0
Rejoignez-nous