XML effacer un noeud grace a la valeur de son attribut

Résolu
agarcia_01 Messages postés 51 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 25 août 2006 - 2 févr. 2006 à 16:19
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011 - 2 févr. 2006 à 17:37
Bonjour,

j'ai un petit probleme de comprehension au niveau de la supression d'un noeud XML .
J'enregistre des conversation dans un fichier XML et je souhaiterais pouvoir les effacer par date.

<root>
<Conversation date="03/01/2006 16:08:10">
<Texte> blablalbaba </Texte>
</Conversation>
<Conversation date="03/01/2006 16:08:10">
<Texte> blablalbaba</Texte>
</Conversation>
</root>


Voila le code que j'ai fait:

xmldoc.Load(file); // je load mon fichier XML
XmlNodeList nodeList = xmldoc.SelectNodes("//Conversation");
//je met dans une nodelist tout les noeud de ma conversation

//boucle pour lire chaque noeud
foreach(XmlNode nd in nodeList){
//Je veux effacer le node dont l'attribut date= "03/01/2006 16:08:10 "
if (nd.attribute.equal( date= "03/01/2006 16:08:10 ") //bon ça existe pas :(
{
//nd.removeall()

}
}


donc le probleme c'est que j'arrive pas a trouver via le Xmlnode nd comment le
supprimer le noeud grace a l'attribut

J'espere que vous m'avez compris merci de votre aide

AG

9 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
2 févr. 2006 à 16:58
Décidément j'ai du mal avec ma requête aujourd'hui !!!
XmlNodeList nodeList = xmldoc.SelectNodes("//Conversation[@date='03/01/2006 16:08:10' ] ");

Exemple de code :
XmlNodeList nodeList = xmldoc.SelectNodes("//Conversation[@date='03/01/2006 16:08:10']");
foreach ( XmlNode node in nodeList )
{
node.ParentNode.RemoveChild(node);
}

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
2 févr. 2006 à 16:35
Salut,

Tu peux directement sélectionner les noeuds à supprimer dans ta requête XPath :
XmlNodeList nodeList = xmldoc.SelectNodes("//Conversation[date=='03/01/2006 16:08:10'");

/*
coq
MVP Visual C#
*/
0
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
2 févr. 2006 à 16:35
J'ai pas testé mais je le vois bien comme ceci :

if (nd.attribute.equal( date= "03/01/2006 16:08:10 "))
{
nd.ParentNode.RemoveChild(nd);
}

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
2 févr. 2006 à 16:36
Oups, un '=' en trop ^^
XmlNodeList nodeList = xmldoc.SelectNodes("//Conversation[date='03/01/2006 16:08:10'");

/*
coq
MVP Visual C#
*/
0

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

Posez votre question
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
2 févr. 2006 à 17:08
Ca a l'air bon cette fois . Soulignons à agarcia_01qu'on ne peut détruire un noeud qu'à partir de son noeud parent (ParentNode), autrement ça reviendrais à du suicide de noeud

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
2 févr. 2006 à 17:23
node.DoSuicide();
ou
node.DoHarakiri();

ça le ferais :p

/*
coq
MVP Visual C#
*/
0
agarcia_01 Messages postés 51 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 25 août 2006
2 févr. 2006 à 17:34
Merci ça marche parfaitement le coq !!!!

Je peux continuer mon petit projet !!!
0
agarcia_01 Messages postés 51 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 25 août 2006
2 févr. 2006 à 17:36
c clair c'est ce que je me suis dit apres avoir vu le code de coq.
Le fils ne peux pas ce taper un suicide comme ça.Seul les parents le font !

Heureusement que dnas la realité aucun parent tue ses enfants .... enfin a part quelques exeption pres ... :(

Encore merci
0
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
2 févr. 2006 à 17:37
>coq

héhé node.TuSors(); c'est pas mal aussi

>agarcia_01

N'oublie pas d'accepter la bonne réponse pour ceux qui passeraient plus tard

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
0
Rejoignez-nous