|
|
|
|
|
- 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
Instruction POUR TOUT / POUR TOUS (parcours d'une variable de type XMLLecteur) En anglais : FOR EACH / FOR ALL
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. < ?xml version=”1.0”?>
<aa>
<bb>
Text1
<cc>
</cc>
</bb>
<bb>
<cc>
</cc>
</bb>
</aa>
POUR TOUT Lecteur
POUR TOUT Lecteur
POUR TOUT Lecteur
FIN
FIN
FIN
POUR TOUT Lecteur EN PROFONDEUR
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
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|