Modifier un xml qui exist ? [Résolu]

iian2 103 Messages postés jeudi 10 novembre 2005Date d'inscription 21 septembre 2007 Dernière intervention - 12 sept. 2007 à 15:21 - Dernière réponse : iian2 103 Messages postés jeudi 10 novembre 2005Date d'inscription 21 septembre 2007 Dernière intervention
- 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
Neo020585 178 Messages postés lundi 10 mars 2003Date d'inscription 6 juillet 2009 Dernière intervention - 12 sept. 2007 à 15:44
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


<!--

Merci Neo020585 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de Neo020585
Meilleure réponse
Neo020585 178 Messages postés lundi 10 mars 2003Date d'inscription 6 juillet 2009 Dernière intervention - 12 sept. 2007 à 18:43
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
<!--

Merci Neo020585 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de Neo020585
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 12 sept. 2007 à 15:31
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
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 12 sept. 2007 à 15:35
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
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 12 sept. 2007 à 15:36
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
iian2 103 Messages postés jeudi 10 novembre 2005Date d'inscription 21 septembre 2007 Dernière intervention - 12 sept. 2007 à 15:42
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
iian2 103 Messages postés jeudi 10 novembre 2005Date d'inscription 21 septembre 2007 Dernière intervention - 12 sept. 2007 à 15:51
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
iian2 103 Messages postés jeudi 10 novembre 2005Date d'inscription 21 septembre 2007 Dernière intervention - 12 sept. 2007 à 20:23
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.