Recherche d'un element XML par son attribut

Résolu
kaygee Messages postés 51 Date d'inscription mardi 25 septembre 2001 Statut Membre Dernière intervention 9 décembre 2009 - 28 avril 2009 à 11:55
souicioql Messages postés 24 Date d'inscription mercredi 12 mai 2010 Statut Membre 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

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2009 à 14:20
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2009 à 12:07
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
kaygee Messages postés 51 Date d'inscription mardi 25 septembre 2001 Statut Membre Dernière intervention 9 décembre 2009
28 avril 2009 à 13:31
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
kaygee Messages postés 51 Date d'inscription mardi 25 septembre 2001 Statut Membre Dernière intervention 9 décembre 2009
28 avril 2009 à 14:37
Merci beaucoup, ca fonctionne, c'est vrai je n'avais pas pensé au tag de départ.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
souicioql Messages postés 24 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 26 mai 2011
21 janv. 2011 à 12:22
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.
Rejoignez-nous