Extraire chaine d'un xml.

Résolu
cs_kraven Messages postés 13 Date d'inscription jeudi 30 août 2001 Statut Membre Dernière intervention 13 novembre 2013 - 24 juil. 2009 à 10:28
cs_kraven Messages postés 13 Date d'inscription jeudi 30 août 2001 Statut Membre Dernière intervention 13 novembre 2013 - 27 juil. 2009 à 10:39
Bonjour,

J'ai un serveur xml qui me retourne une chaine de type :
<read status='success'>20.2</read>

Je cherche un moyen simple d'extraire le mot success et le mot 20.2 en utilsant les fonctions xml de VB 2088.

Merci.

5 réponses

phila38 Messages postés 11 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 25 juillet 2009
25 juil. 2009 à 17:21
pardon... pour les puriste du .net :

Dim monTag As String = "bcdef"
Dim i1 As Integer = monTag.IndexOf(">")
Dim i2 As Integer = monTag.IndexOf("</", i1 + 1)
Dim mavaleur As String = monTag.Substring(i1 + 1, i2 - i1 - 1)
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 juil. 2009 à 10:37
te faut une requete XPath du genre:

read[@status='success']

faudrait voir la globalité du flux pour être plus précis


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_kraven Messages postés 13 Date d'inscription jeudi 30 août 2001 Statut Membre Dernière intervention 13 novembre 2013
24 juil. 2009 à 19:25
C'est la globalité du flux.

A chaque fois que j'envoie une commande au serveur il me retourne une réponse de ce type. Rien de plus.

Dans ce genre de cas ou le flux xml est très simple ne vaut-il mieux pas utiliser les fonctions de manipulation de chaine finalement?

Je cherche vraiment le moyen le plus simple car je ne suis pas spécialement programmeur, je bricole simplement des trucs de temps en temps pour répondre à des besoins ponctuel et personnel.

Merci pour votre aide.

Christophe
0
phila38 Messages postés 11 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 25 juillet 2009
25 juil. 2009 à 16:38
Pour du bricolage de ce genre, la manipulation de chaine me parait en effet le plus indiqué; un truc comme ça devrait suffire :

Dim monTag As String = "bcdef"
Dim i1 As Integer = InStr(monTag, ">")
Dim i2 As Integer = InStr(i1 + 1, monTag, "</")
Dim mavaleur As String = Mid(s, i1 + 1, i2 - i1 - 1)
0

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

Posez votre question
cs_kraven Messages postés 13 Date d'inscription jeudi 30 août 2001 Statut Membre Dernière intervention 13 novembre 2013
27 juil. 2009 à 10:39
Merci pour tes lumières.
Donc effectivement je vais utiliser la manipulation de chaine.

Christophe
0
Rejoignez-nous