XML effacer un noeud grace a la valeur de son attribut [Résolu]

Messages postés
51
Date d'inscription
mardi 8 février 2005
Dernière intervention
25 août 2006
- - Dernière réponse : cs_poppyto
Messages postés
541
Date d'inscription
dimanche 29 décembre 2002
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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
3
Merci
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#
*/

Dire « Merci » 3

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

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

Commenter la réponse de cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
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#
*/
Commenter la réponse de cs_coq
Messages postés
541
Date d'inscription
dimanche 29 décembre 2002
Dernière intervention
13 mai 2011
0
Merci
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#
Commenter la réponse de cs_poppyto
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
Oups, un '=' en trop ^^
XmlNodeList nodeList = xmldoc.SelectNodes("//Conversation[date='03/01/2006 16:08:10'");

/*
coq
MVP Visual C#
*/
Commenter la réponse de cs_coq
Messages postés
541
Date d'inscription
dimanche 29 décembre 2002
Dernière intervention
13 mai 2011
0
Merci
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#
Commenter la réponse de cs_poppyto
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
node.DoSuicide();
ou
node.DoHarakiri();

ça le ferais :p

/*
coq
MVP Visual C#
*/
Commenter la réponse de cs_coq
Messages postés
51
Date d'inscription
mardi 8 février 2005
Dernière intervention
25 août 2006
0
Merci
Merci ça marche parfaitement le coq !!!!

Je peux continuer mon petit projet !!!
Commenter la réponse de agarcia_01
Messages postés
51
Date d'inscription
mardi 8 février 2005
Dernière intervention
25 août 2006
0
Merci
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
Commenter la réponse de agarcia_01
Messages postés
541
Date d'inscription
dimanche 29 décembre 2002
Dernière intervention
13 mai 2011
0
Merci
>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#
Commenter la réponse de cs_poppyto

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.