Modifier un xml qui exist ? [Résolu]

Signaler
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007
-
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007
-
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

Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
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


<!--
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
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
<!--
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Salut,
Regarde la class XmlDocument elle permet de modifier (ajout/suppression) le contenu d'un fichier XML.

<hr />
-Blog-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
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
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007

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>
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007

Je vais tester la la si ca fonctionne tu va avoir ta reponse accepter

Merci pour le coups de main
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
21 septembre 2007

Re: merci

Ian