Modifier un xml qui exist ? [Résolu]

Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Dernière intervention
21 septembre 2007
- - Dernière réponse : iian2
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
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
Afficher la suite 

Votre réponse

8 réponses

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


<!--

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Neo020585
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Dernière intervention
6 juillet 2009
4
3
Merci
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
<!--

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Neo020585
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
58
0
Merci
Salut,
Regarde la class XmlDocument elle permet de modifier (ajout/suppression) le contenu d'un fichier XML.

<hr />
-Blog-
Commenter la réponse de cs_Bidou
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
47
0
Merci
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
Commenter la réponse de jrivet
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
47
0
Merci
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
Commenter la réponse de jrivet
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Dernière intervention
21 septembre 2007
0
Merci
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>
Commenter la réponse de iian2
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Dernière intervention
21 septembre 2007
0
Merci
Je vais tester la la si ca fonctionne tu va avoir ta reponse accepter

Merci pour le coups de main
Commenter la réponse de iian2
Messages postés
103
Date d'inscription
jeudi 10 novembre 2005
Dernière intervention
21 septembre 2007
0
Merci
Re: merci

Ian
Commenter la réponse de iian2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.