GNT sans publicité, site mobile, fonctionnalitées exclusives...

Parseur XML

Le
Doomsday
Bonjour,

J'aimerais récupérer les informations d'un fichier XML de la forme :

<root>
<header>
<id/>
<name/>
</header>
<result>
<col>1</col>
<col>john</col>
</result>
</root>

C'est moi qui le génère, je peux éventuellement changer sa structure
pour l'adapter aux facilités de Windev.
Voilà Je sais pas si mon code Windev est compréhensible, mais
j'essaie tout bonnement de parcourir le fichier XML à la conquête des
données qui se trouvent à l'intérieur. Actuellement, voilà ce que
j'ai :

// Récupère la structure du header
XMLDocument("doc.xml", ..)
XMLRecherche("doc.xml", "header", XMLBalise)
XMLPremier("doc.xml")
XMLRecherche("doc.xml", Null, XMLBalise+XMLSousElément)
XMLPremier("doc.xml")
TANTQUE XMLEnDehors("doc.xml") = Faux
headers += XMLNomElément("doc.xml") + TAB // je stocke le nom des
balises
XMLSuivant("doc.xml")
FIN

// remets à zéro
XMLAnnuleRecherche("doc.xml")
XMLRacine("doc.xml")

// cherche les résultats
XMLRecherche("doc.xml", Null,XMLBalise)
XMLPremier("doc.xml")
TANTQUE XMLEnDehors("doc.xml") = Faux
SI XMLNomElément("doc.xml") = "result" ALORS

// essaie désespérement de rechercher toutes les balises
"col"
XMLRecherche("doc.xml", "col", XMLBalise+XMLSousElément)
XMLPremier("doc.xml")
TANTQUE XMLEnDehors("doc.xml") = Faux
str += XMLDonnée("doc.xml") // essaie de récupérer
le contenu
XMLSuivant("doc.xml")
FIN

FIN

XMLRecherche("doc.xml",Null,XMLBalise+XMLContinue)
XMLPremier("doc.xml")
FIN


La récupération du header se passe bien, mais il y a un problème
quand je rentre dans la grosse boucle, je n'ai pas encore réussi à
récupérer le contenu d'une sous balise (ici <col>).

Merci pour l'aide!
Lire les 2 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
bob
Le #14707111
On Wed, 06 Dec 2006 06:36:09 -0800, Doomsday wrote:

Bonjour,

J'aimerais récupérer les informations d'un fichier XML de la forme :

<root>
<header>
<id/>
<name/>
</header>
<result>
<col>1</col>
<col>john</col>
</result>
</root>



Petite question, est-ce qu'il peut y avoir plusieur groupes de balises
<result> ?


La récupération du header se passe bien, mais il y a un problème quand
je rentre dans la grosse boucle, je n'ai pas encore réussi à récupérer
le contenu d'une sous balise (ici


Pourquoi ne pas utiliser XPath pour acceder aux résultat. Genre :
XMLExecuteXPath ("doc.xml", "/root/result")

Un super tutorial XPath ici : http://www.w3schools.com/xpath/default.asp

Bob.
JeAn-PhI
Le #14707071
Doomsday a formulé ce mercredi :
Bonjour,

J'aimerais récupérer les informations d'un fichier XML de la forme :

<root>
<header>
<id/>
<name/>
</header>
<result>
<col>1</col>
<col>john</col>
</result>
</root>

C'est moi qui le génère, je peux éventuellement changer sa structure
pour l'adapter aux facilités de Windev.
Voilà... Je sais pas si mon code Windev est compréhensible, mais
j'essaie tout bonnement de parcourir le fichier XML à la conquête des
données qui se trouvent à l'intérieur. Actuellement, voilà ce que
j'ai :

// Récupère la structure du header
XMLDocument("doc.xml", ..)
XMLRecherche("doc.xml", "header", XMLBalise)
XMLPremier("doc.xml")
XMLRecherche("doc.xml", Null, XMLBalise+XMLSousElément)
XMLPremier("doc.xml")
TANTQUE XMLEnDehors("doc.xml") = Faux
headers += XMLNomElément("doc.xml") + TAB // je stocke le nom des
balises
XMLSuivant("doc.xml")
FIN

// remets à zéro
XMLAnnuleRecherche("doc.xml")
XMLRacine("doc.xml")

// cherche les résultats
XMLRecherche("doc.xml", Null,XMLBalise)
XMLPremier("doc.xml")
TANTQUE XMLEnDehors("doc.xml") = Faux
SI XMLNomElément("doc.xml") = "result" ALORS

// essaie désespérement de rechercher toutes les balises
"col"
XMLRecherche("doc.xml", "col", XMLBalise+XMLSousElément)
XMLPremier("doc.xml")
TANTQUE XMLEnDehors("doc.xml") = Faux
str += XMLDonnée("doc.xml") // essaie de récupérer
le contenu
XMLSuivant("doc.xml")
FIN

FIN

XMLRecherche("doc.xml",Null,XMLBalise+XMLContinue)
XMLPremier("doc.xml")
FIN


La récupération du header se passe bien, mais il y a un problème
quand je rentre dans la grosse boucle, je n'ai pas encore réussi à
récupérer le contenu d'une sous balise (ici
Merci pour l'aide!



utiliser XPath j'ai déja répondu à ce genre de question ici :
http://forum.pcsoft.fr/post.awp?id˜994&forum=pcsoft.fr.windev&from%0&gmt=P0100
et ici :
http://forum.pcsoft.fr/post.awp?id™321&forum=pcsoft.fr.windev&from 0&gmt=P0100

un autre tuto en french ici :
http://jerome.developpez.com/xmlxsl/xpath/

--
Cordialement JeAn-PhI
Publicité
Suivre les réponses
Poster une réponse
Anonyme