FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Extraction de données XML
Extraction de données XML
Débuté par Charles Bidard, 29 mar. 2017 08:56 - 4 réponses
Connectez-vous…
Charles Bidard
#1
Posté le 29 mars 2017 - 08:56
Bonjour !
Je rencontre quelque problème avec l'utilisation du XML, malgré un consultation minutieuse de la doc, je n'arrive pas à me dépatouiller avec mes fichier XML.
La situation est la suivante :
- Fichier XML
- Je dois tirer des données depuis les attributs et les valeurs de différents nœud
- Certains nœuds peuvent êtres présent plusieurs fois au même niveaux.
- Certains nœuds de nom similaire sont présent à des niveaux différent et renferme des informations différentes.
Voici un exemple de la syntaxe XML de mon fichier :
<
?
xml version
=
1.0
encoding
=
"UTF-8"
?
>
<
Document
>
<
head
>
<
date
>
20.02.2017
<
/
date
>
<
/
head
>
<
entries
>
<
entry
>
<
date
>
19.02.2017
<
/
date
>
<
montant devise
=
"EURO"
>
2500.65
<
/
montant
>
<
/
entry
>
<
entry
>
<
date
>
20.02.2017
<
/
date
>
<
montant devise
=
"EURO"
>
2500.12
<
/
montant
>
<
/
entry
>
<
/
entries
>
<
/
Document
>
A partir de ce fichier, j'aimerai pouvoir retirer les informations suivantes :
- La valeur du noeud "date" dans head
- Un tableau des noeuds "entry"
- Valeur des noeuds + attributs des "entry" dans le tableau
Mes tentatives se sont jusque la révélé futiles, j'arrive à charger le fichier XML dans une variable de type xmlDocument, j'arrive à visualiser le code source XML à partir de cet variable, mais je n'arrive pas à descendre dans les niveaux. J'ai tenté quelque chose comme ca :
Trace
(
viXMLSource.Document.head.SourceXML
)
Mais cela n'affiche rien et ne renvoie pas d'erreur.
Est-que quelqu’un ferait preuve de bonne volonté et m'éclairerai de sa lanterne ?
Signaler
0
0
Yann
#2
Membre enregistré
256 messages
Popularité : +29 (29 votes)
Posté le 29 mars 2017 - 09:32
Bonjour
Pourquoi ".SourceXML" ? C'est bien ".Date" que vous vouliez lire non ?
Trace
(
viXMLSource.Document.head.date
)
Note : vous pouvez importer votre exemple XML directement dans le projet (créez un fichier .xml et importez le dans le projet) : un élément XML apparaît dans l'explorateur de projet
Un drag'n drop de cet élément depuis l'explorateur de projet vers le code créera la déclaration d'un xmlNoeud.
A partir de ce xmlNoeud, vous aurez la complétion pour accéder à vos données.
Vous obtiendrez du code comme ci-dessous.
viXMLSource
est un xmlDocument
<
Description
=
"test"
> =
XMLOuvre
(
"D:\Tests\test.xml"
)
Trace
(
viXMLSource.Document.head.date
)
Signaler
0
0
Frédéric DEMILLY
#3
Posté le 29 mars 2017 - 10:00
Bonjour,
Avec le document donné en référence, je propose cette syntaxe:
trace(viXMLSource.Document.head.date..texte)
trace(viXMLSource.Document.entries.entry[1].date..texte)
Tu peux aussi utiliser un POUR TOUT pour boucler sur les entrées:
POUR TOUT EntreeCourante de viXMLSource.Document.entries sur entry
trace(EntreeCourante.date..texte)
FIN
Frédéric.
"Charles Bidard" a écrit dans le message de groupe de discussion :
2017c5f071d091e112ae61333b72ef9b3f17@news.pcsoft.fr...
Bonjour !
Je rencontre quelque problème avec l'utilisation du XML, malgré un
consultation minutieuse de la doc, je n'arrive pas à me dépatouiller avec
mes fichier XML.
La situation est la suivante :
- Fichier XML
- Je dois tirer des données depuis les attributs et les valeurs de
différents nœud
- Certains nœuds peuvent êtres présent plusieurs fois au même niveaux.
- Certains nœuds de nom similaire sont présent à des niveaux différent et
renferme des informations différentes.
Voici un exemple de la syntaxe XML de mon fichier :
<
?
xml version
=
1.0
encoding
=
"UTF-8"
?
>
<
Document
>
<
head
>
<
date
>
20.02.2017
<
/
date
>
<
/
head
>
<
entries
>
<
entry
>
<
date
>
19.02.2017
<
/
date
>
<
montant devise
=
"EURO"
>
2500.65
<
/
montant
>
<
/
entry
>
<
entry
>
<
date
>
20.02.2017
<
/
date
>
<
montant devise
=
"EURO"
>
2500.12
<
/
montant
>
<
/
entry
>
<
/
entries
>
<
/
Document
>
A partir de ce fichier, j'aimerai pouvoir retirer les informations suivantes
:
- La valeur du noeud "date" dans head
- Un tableau des noeuds "entry"
- Valeur des noeuds + attributs des "entry" dans le tableau
Mes tentatives se sont jusque la révélé futiles, j'arrive à charger le
fichier XML dans une variable de type xmlDocument, j'arrive à visualiser le
code source XML à partir de cet variable, mais je n'arrive pas à descendre
dans les niveaux. J'ai tenté quelque chose comme ca :
Trace
(
viXMLSource.Document.head.SourceXML
)
Mais cela n'affiche rien et ne renvoie pas d'erreur.
Est-que quelqu’un ferait preuve de bonne volonté et m'éclairerai de sa
lanterne ?
Signaler
0
0
Hemgé
#4
Posté le 29 mars 2017 - 10:00
Charles Bidard a écrit :
Bonjour !
Je rencontre quelque problème avec l'utilisation du XML, malgré un consultation minutieuse de la doc, je n'arrive pas à me dépatouiller avec mes fichier XML.
Bonjour
Relisez la doc
- xmlDocument (type de variable) :
https://doc.pcsoft.fr/fr-FR/index.awp?1000018782
- xmlNoeud (type de variable) :
https://doc.pcsoft.fr/fr-FR/?1000018786&name=xmlnoeud_type_variable
- xmlAttribut (type de variable) :
https://doc.pcsoft.fr/fr-FR/?1000018799&name=xmlattribut_type_variable
- Exemples d'utilisation des types XML :
https://doc.pcsoft.fr/fr-FR/?3081042
Voyez les propriétés et retenez que
- xmlDocument a une propriété ..NoeudRacine, qui est un tableau de xmlNoeuds
- xmlNoeud a deux propriétés qui vous intéressent dans le cas présent :
..Attribut qui est un tableau de xmlAttributs et
..NoeudFils qui est un tableau de xmlNoeuds
Après cela, il vous suffit de parcourir les tableaux.
Bonnes lectures et bon travail
Hemgé
Signaler
0
0
Charles Bidard
#5
Posté le 29 mars 2017 - 10:25
Merci pour toutes vos réponses, elles m'ont bien aidé ! J'arrive maintenant à obtenir les informations qu'il me fallait !
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte