[c#/xml] Trouver un noeud avec un attribut particulier : Est-ce possible avec Se [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2006
-
Messages postés
9
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2006
-
Bonjour,



J'ai un fichier xml dont voici un extrait :



<?xml version="1.0" encoding="UTF-8"?>

<root>

<mp3 id="1" name="toto.mp3">

<taille>xxxx</taille>

<debut>0</debut>

<fin>yyyy</fin>

</mp3>

<mp3 id="2" name="titi.mp3">


<taille>zzzz</taille>


<debut>yyyy</debut>


<fin>vvvv</fin>


</mp3>

.....

.....

</root>


J'utilise SelectSingleNode pour trouver un noeud.

Comment utiliser par exemple pour récupérer directement avec un ou plusieurs attributs ?

Par exemple si je veux trouver le noeud pour lequel name="titi.mp3" je
fais comment ? puis-je utiliser une variable à la place de titi.mp3
dans ma requete ?



Je suis "nouveau" en c# et xml et je lis pas mal de vos réponses. Si
j'ai raté ce sujet et qu'il a déja été traité, prière de m'excuser.



Merci.




-.- DotMatrix -.- Likilik -.-

7 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

Oui, avec une requête XPath de ce genre :
"//mp3[@name='titi.mp3']"

/*
coq
MVP Visual C#
*/
Messages postés
9
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2006

Merci.

Ca me permet d'avancer....
Pour la variable j'ai aussi trouvé ma ligne est (si ca interesse) :


XmlNode mp3 = xmlDoc.SelectSingleNode("//mp3[@name='" + file + "']"); // file est le nom de la variable qui contient le fichier recherche

Encore merci !

-.- DotMatrix -.- Likilik -.-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
La concaténation c'est moche ;-)

string xpath = string.Format("//mp3[@name='{0}']", file);
XmlNode mp3 = xmlDoc.SelectSingleNode(xpath);

ou direct

XmlNode mp3 = xmlDoc.SelectSingleNode(string.Format("//mp3[@name='{0}']", file));

/*
coq
MVP Visual C#
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
string xpath = string.Format("//mp3[@name= " {0}"]", file);
XmlNode mp3 = xmlDoc.SelectSingleNode(xpath);

:-)

/*
coq
MVP Visual C#
*/
Messages postés
9
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2006

En effet merci bien...

au fait je rencontre un petit souci c'est que mes fichier mp3 ont des fois des noms contenant des quotes...
Une idée ?

Merci
;-)

-.- DotMatrix -.- Likilik -.-
Messages postés
9
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2006

C'est génial !
Merci de ton aide

-.- DotMatrix -.- Likilik -.-
Messages postés
9
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 avril 2006

C'est génial !
Merci de ton aide

Bravo a csharp et a ce moyen d'entraide !!!

A bientot !

-.- DotMatrix -.- Likilik -.-