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

cs_Likilik 9 Messages postés jeudi 2 décembre 2004Date d'inscription 24 avril 2006 Dernière intervention - 20 mars 2006 à 18:24 - Dernière réponse : cs_Likilik 9 Messages postés jeudi 2 décembre 2004Date d'inscription 24 avril 2006 Dernière intervention
- 20 mars 2006 à 22:55
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 -.-
Afficher la suite 

7 réponses

Répondre au sujet
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 20 mars 2006 à 18:33
+3
Utile
Salut,

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

/*
coq
MVP Visual C#
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_Likilik 9 Messages postés jeudi 2 décembre 2004Date d'inscription 24 avril 2006 Dernière intervention - 20 mars 2006 à 18:44
+3
Utile
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 -.-
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Likilik
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 20 mars 2006 à 18:50
+3
Utile
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#
*/
Cette réponse vous a-t-elle aidé ?  
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 - 20 mars 2006 à 22:21
+3
Utile
string xpath = string.Format("//mp3[@name= " {0}"]", file);
XmlNode mp3 = xmlDoc.SelectSingleNode(xpath);

:-)

/*
coq
MVP Visual C#
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
cs_Likilik 9 Messages postés jeudi 2 décembre 2004Date d'inscription 24 avril 2006 Dernière intervention - 20 mars 2006 à 19:44
0
Utile
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 -.-
Commenter la réponse de cs_Likilik
cs_Likilik 9 Messages postés jeudi 2 décembre 2004Date d'inscription 24 avril 2006 Dernière intervention - 20 mars 2006 à 22:54
0
Utile
C'est génial !
Merci de ton aide

-.- DotMatrix -.- Likilik -.-
Commenter la réponse de cs_Likilik
cs_Likilik 9 Messages postés jeudi 2 décembre 2004Date d'inscription 24 avril 2006 Dernière intervention - 20 mars 2006 à 22:55
0
Utile
C'est génial !
Merci de ton aide

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

A bientot !

-.- DotMatrix -.- Likilik -.-
Commenter la réponse de cs_Likilik

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.