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

Signaler
Messages postés
51
Date d'inscription
mardi 25 septembre 2001
Statut
Membre
Dernière intervention
9 décembre 2009
-
souicioql
Messages postés
25
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
26 mai 2011
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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
Messages postés
51
Date d'inscription
mardi 25 septembre 2001
Statut
Membre
Dernière intervention
9 décembre 2009

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
Messages postés
51
Date d'inscription
mardi 25 septembre 2001
Statut
Membre
Dernière intervention
9 décembre 2009

Merci beaucoup, ca fonctionne, c'est vrai je n'avais pas pensé au tag de départ.
Messages postés
25
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
26 mai 2011

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.