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

agarcia_01 51 Messages postés mardi 8 février 2005Date d'inscription 25 août 2006 Dernière intervention - 2 févr. 2006 à 16:19 - Dernière réponse : cs_poppyto 541 Messages postés dimanche 29 décembre 2002Date d'inscription 13 mai 2011 Dernière intervention
- 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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 2 févr. 2006 à 16:58
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#
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cs_coq
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 2 févr. 2006 à 16:35
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
cs_poppyto 541 Messages postés dimanche 29 décembre 2002Date d'inscription 13 mai 2011 Dernière intervention - 2 févr. 2006 à 16:35
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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 2 févr. 2006 à 16:36
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
cs_poppyto 541 Messages postés dimanche 29 décembre 2002Date d'inscription 13 mai 2011 Dernière intervention - 2 févr. 2006 à 17:08
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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 2 févr. 2006 à 17:23
0
Merci
node.DoSuicide();
ou
node.DoHarakiri();

ça le ferais :p

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

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