Recherche d'un element XML par son attribut [Résolu]

Messages postés
52
Date d'inscription
mardi 25 septembre 2001
Dernière intervention
9 décembre 2009
- 28 avril 2009 à 11:55 - Dernière réponse :
Messages postés
25
Date d'inscription
mercredi 12 mai 2010
Dernière intervention
26 mai 2011
- 21 janv. 2011 à 12:22
Salut à tous,

j'ai un souci XML lorsque j'effectue mon getXMLInfo = element.Value, il me signale que je dois utiliser l'opérateur new

hors je ne veux attribuer en retour que la valeur du noeud que je souhaite trouver.

pourriez-vous m'aider?

merci

Public





Function

getXMLInfo(


ByVal

ls_type


As





String

,


ByVal

ls_name


As





String

)


As





String










' fonction d'appel d'un label dans la string XML










If

li_codRet = 0


Then










Dim

sreader


As





New



StringReader(ls_result)







Dim

doc


As

XmlDocument =


New



XmlDocument()


doc.Load(sreader)








Dim

elements


As



XmlNode







Dim

root


As



XmlNode = doc.DocumentElement


elements = root.SelectSingleNode(




"root/label[NAME=""'lbl_Title'""]"


)


getXMLInfo = elements.Value()








Else




getXMLInfo =






"Label Unknown"










End





If










End





Function
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
22 août 2018
- 28 avril 2009 à 14:20
3
Merci
tu pars du niveau root, tu peux pas rechercher root de nouveau...

Dim doc As XmlDocument = New XmlDocument()
doc.Load("c:\a.xml")

Dim oNode As XmlNode = doc.SelectSingleNode("root/label[@NAME='lbl_Title']")
If Nothing Is oNode Then
MessageBox.Show("label inconnu")
Else
MessageBox.Show(oNode.InnerText)
End If

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
22 août 2018
- 28 avril 2009 à 12:07
0
Merci
c'est qu'il a pas trouvé ton élément...

ta requete trouverai:

<root>
<label>
<NAME>lbl_title</NAME>
<TEXT>...</TEXT>
</label>
</root>

tu dis vouloir trouver un attribut...

faire, donc :

root/label[@NAME="lbl_title"]

pour tester un @ttribut
Commenter la réponse de Renfield
Messages postés
52
Date d'inscription
mardi 25 septembre 2001
Dernière intervention
9 décembre 2009
- 28 avril 2009 à 13:31
0
Merci
Salut,

merci je viens de tester mais j'ai le même résultat




<root><label NAME="lbl_Msg12">Bla bla bla</label><label NAME="lbl_Msg22">blu blu blu</label><label NAME="lbl_infbrs_2">Blo blo blo</label><label NAME="lbl_Msg11">Tagada</label><label NAME="lbl_Msg21">tsoin</label><label NAME="lbl_typcard">Tsoin</label><label NAME="lbl_Title">Truc muche</label></root>

Voila ce que contiens ma variable ls_result
Commenter la réponse de kaygee
Messages postés
52
Date d'inscription
mardi 25 septembre 2001
Dernière intervention
9 décembre 2009
- 28 avril 2009 à 14:37
0
Merci
Merci beaucoup, ca fonctionne, c'est vrai je n'avais pas pensé au tag de départ.
Commenter la réponse de kaygee
Messages postés
25
Date d'inscription
mercredi 12 mai 2010
Dernière intervention
26 mai 2011
- 21 janv. 2011 à 12:22
0
Merci
slt
pour recharge un attribut ou élément d'un document XML en retrouve expression de chemin

• Les expressions de chemin ressemble beaucoup à celles que l'on retrouve dans le langage XPath. Prenons par exemple le document suivant dans lequel l’attribut «num» représenterait un numéro associé à un élève et la valeur de la balise, la note de celui-ci.
• <examen>
<note num="001">80</note>
<note num="012">75</note>
<note num="525">99</note>
<note num="601">60</note>
</examen>
• Examinons maintenant l'expression de chemin suivante :
• //examen/note[@num=$a]/text ()
• Assument que la variable $a contienne une valeur numérique constitué de trois chiffres, l’expression retournerait le texte contenu dans le nœud dont la valeur de l’attribut num est égale à celui de la variable.
Commenter la réponse de souicioql

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.