DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Instructions structurées
  • Syntaxe 1 : Parcours des éléments du fichier XML sur un niveau
  • Syntaxe 2 : Parcours sur un niveau avec copie
  • Syntaxe 3 : Parcours en profondeur
  • Parcours d'une variable XMLDocument
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
L'instruction POUR TOUT permet d'effectuer différents types de parcours sur une variable de type xmlLecteur :
  • Parcours sur un niveau.
  • Parcours sur un niveau avec copie.
  • Parcours en profondeur.
Remarque : Les instructions POUR TOUT, POUR TOUS, POUR CHAQUE sont acceptées. Dans cette documentation, seule l'instruction POUR TOUT est utilisée et peut être remplacée par POUR TOUS ou POUR CHAQUE.
Exemple
< ?xml version=1.0?>
<aa>
<bb>
Text1

<cc>
</cc>
</bb>
<bb>
<cc>
</cc>
</bb>
</aa>
// Parcours sur un niveau
// Lecteur est la variable correspondant au fichier XML
POUR TOUT Lecteur
// Lecture des balises début aa et fin aa
POUR TOUT Lecteur
// Lecture des balises début bb, fin bb, début bb, fin bb
POUR TOUT Lecteur
// Lecture de Text1 et des balises début cc, fin cc
// début cc, fin cc
FIN
FIN
FIN
// Lecteur est la variable correspondant au fichier XML
POUR TOUT Lecteur EN PROFONDEUR
// Lecture des balises début aa, début bb, text1, 
// début cc, fin cc, fin bb, début bb,
// début cc, fin cc, fin bb, fin aa
FIN
Syntaxe

Parcours des éléments du fichier XML sur un niveau Masquer les détails

POUR TOUT <Lecteur XML>
      POUR TOUT <Lecteur XML>
    ...
      FIN
FIN
<POUR TOUT> :
Signale le début du bloc d'instructions.
Permet de parcourir les fils du niveau actuel.
<Lecteur XML> :
Variable de type xmlLecteur correspondant au fichier XML à parcourir.
A l'intérieur de la boucle, la variable xmlLecteur pointe sur l'élément XML courant.
Remarque : Il est possible d'imbriquer des parcours sur le lecteur XML.

Parcours sur un niveau avec copie Masquer les détails

POUR TOUT <Elément> DE <Lecteur XML>
       POUR TOUT <Elément A> DE <Elément>
        ...
       FIN
FIN
<POUR TOUT> :
Signale le début du bloc d'instructions.
Permet de parcourir les fils du niveau actuel.
<Elément> :
A l'intérieur de la boucle, <Elément> pointe sur l'élément XML courant. Il peut être utilisé pour faire une nouvelle boucle de type POUR TOUT pour parcourir ses fils.
<Lecteur XML> :
Variable de type xmlLecteur correspondant au fichier XML à parcourir.

Parcours en profondeur Masquer les détails

POUR TOUT <Lecteur XML> EN PROFONDEUR
      ...
FIN

POUR TOUT <Elément> DE <Lecteur XML> EN PROFONDEUR
      ...
FIN
<POUR TOUT> :
Signale le début du bloc d'instructions.
Permet de parcourir l'arbre XML en profondeur : parcours le fils, puis le petit-fils, puis le fils du petit-fils jusqu'à une feuille, en continuant.
<Elément> :
A l'intérieur de la boucle, <Elément> pointe sur l'élément XML courant. Permet de faire une lecture en profondeur à partir d'un élément.
<Lecteur XML> :
Variable de type xmlLecteur correspondant au fichier XML à parcourir.
Remarques

Syntaxe 1 : Parcours des éléments du fichier XML sur un niveau

Cette syntaxe permet de parcourir les fils du niveau actuel. A l'intérieur de la boucle, la variable xmlLecteur pointe sur l'élément XML courant.
Il est possible d'imbriquer les parcours sur la variable xmlLecteur pour parcourir les fils de l'élément au niveau en cours de parcours.

Syntaxe 2 : Parcours sur un niveau avec copie

Cette syntaxe permet de parcourir les fils du niveau actuel. A l'intérieur de la boucle, <Elément> pointe sur l'élément XML courant et il est possible de l'utiliser pour faire un autre parcours sur ses propres fils.
Remarque : Il est possible de faire uniquement un seul parcours sur la variable <Elément>.

Syntaxe 3 : Parcours en profondeur

Cette syntaxe permet de parcourir l'arbre XML en profondeur, c'est-à-dire le fils, puis le petit-fils, ... jusqu'à atteindre une feuille. Lorsque la feuille est atteinte, la boucle passe au fils suivant.

Parcours d'une variable XMLDocument

Si le fichier XML est manipulé via une variable XMLDocument, il est également possible de réaliser un parcours directement.
Par exemple :
// Utilisation de POUR TOUT <xmlNoeud> DE <xmlNoeud ou xmlDocument>
// SUR <Nom de noeud> AVEC <CONDITION>
 
// Recherche de toutes les lignes de la facture avec un TVA à 20
sXML est une chaîne=[
<?xml version="1.0" encoding="UTF-8"?>
<FACTURE>
<ENTETE>
<IDCLIENT>123465</IDCLIENT>
<NOM>M. Henri DUPONT</NOM>
</ENTETE>
<LIGNES>
<LIGNE TYPE="PRODUIT" CODE="CD1" QTE="2" TYPTVA="5.5">51</LIGNE>
<LIGNE TYPE="PRODUIT" CODE="CD2" QTE="1" TYPTVA="20">52</LIGNE>
<LIGNE TYPE="PRODUIT" CODE="CD3" QTE="3" TYPTVA="5.5">53</LIGNE>
<LIGNE TYPE="PRODUIT" CODE="CD4" QTE="1" TYPTVA="20">54</LIGNE>
<LIGNE TYPE="PRODUIT" CODE="CD5" QTE="1" TYPTVA="20">55</LIGNE>
<LIGNE TYPE="PRODUIT" CODE="CD6" QTE="1" TYPTVA="5.5">56</LIGNE>
</LIGNES>
<TOTAUX>
<TVA TYPE="5.5">55</TVA>
<TVA TYPE="20">200</TVA>
<TOTALHT>1000</TOTALHT>
<FDP>10</FDP>
</TOTAUX>
</FACTURE>
]
 
resultXml est un xmlDocument = XMLOuvre(sXML, depuisChaîne)
SI ErreurDétectée ALORS
Erreur("Echec de l'ouverture du XML", ErreurInfo())
RETOUR
FIN
// Parcours dans "FACTURE.LIGNES" uniquement
// sur les sous noeuds qui ont pour nom "LIGNE"
// et avec une condition sur l'attribut "TYPTVA" à "20"
POUR TOUT NoeudLigne DE resultXml.FACTURE.LIGNES
SUR LIGNE AVEC NoeudLigne:TYPTVA.Valeur = "20"
Trace("Article code " + NoeudLigne:CODE.Valeur + " x " + ...
NoeudLigne:QTE.Valeur+" = " + NoeudLigne..Texte)
FIN
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 04/07/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale