Extraire chaine d'un xml. [Résolu]

Signaler
Messages postés
13
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
13 novembre 2013
-
cs_kraven
Messages postés
13
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
13 novembre 2013
-
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

Messages postés
11
Date d'inscription
jeudi 23 juillet 2009
Statut
Membre
Dernière intervention
25 juillet 2009

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)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
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
Messages postés
13
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
13 novembre 2013

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
Messages postés
11
Date d'inscription
jeudi 23 juillet 2009
Statut
Membre
Dernière intervention
25 juillet 2009

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)
Messages postés
13
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
13 novembre 2013

Merci pour tes lumières.
Donc effectivement je vais utiliser la manipulation de chaine.

Christophe