Utilisez le type XMLDocument pour faciliter la lecture de données des documents XML
Les versions 15 permettent de simplifier considérablement les traitements basés sur les données d'un document XML.
Voici en détail la méthode à appliquer pour être immédiatement opérationnel avec ces nouvelles techniques.
1. Déclaration d'une variable du type "XMLDocument" :
Dans l'Explorateur de projet, utilisez le menu contextuel de "Descriptions XML" afin de spécifier l'emplacement du document XML.
Cette première action n'a pas pour but d'indiquer le document à utiliser lors de l'exécution. Il s'agit uniquement d'indiquer au WLangage la structure du document, notamment pour bénéficier de la complétion dans l'éditeur de code.
Pour cet exemple, on importe un document XML contenant les Clients de l'exemple CRM livré avec WINDEV. Le fichier XML peut être obtenu avec l'appel suivant dans un code de l'exemple CRM :
HExporteXML(CLIENT,"C:\temp\Client.XML")
Une fois la structure du document XML connue de l'éditeur, il suffit dans vos traitements de déclarer une variable de type XMLDocument par un simple glisser/déplacer :
- sélectionnez la description XML
- effectuez un glisser/déplacer de son nom, dans le code qui doit parcourir les donnés du document XML.
La déclaration suivante est obtenue :
MonDocXML est un xmlDocument,Description="Client"
Notez que le glisser/déplacer est facultatif, la déclaration peut être saisie traditionnellement dans l'éditeur.
2. Ouverture :
La variable permettant d'accéder aux données du document XML est maintenant déclarée, il suffit de localiser le document à utiliser lors de l'exécution à l'aide de la fonction "XMLOuvre" :
MonDocXML est un xmlDocument,Description="Client"
MonDocXML = XMLOuvre("c:\temp\Client.XML",depuisFichier)
MonDocXML = XMLOuvre("c:\temp\Client.XML",depuisFichier)
Pour l'exemple l'emplacement du fichier XML est spécifié de façon statique. Il pourrait s'agir d'un fichier sélectionné par l'utilisateur (cf. fonction "fSélecteur"), récupéré depuis un email, un serveur FTP ...
Il ne doit pas s'agir obligatoirement d'un fichier XML, il est tout à fait possible de préciser une chaîne de caractères contenant le source XML, par exemple après l'avoir récupéré d'un Web service. La syntaxe dans ce cas est de la forme :
MonDocXML = XMLOuvre(VariableContenantLeXML,depuisChaîne)
3. Parcours :
Les données XML sont maintenant accessibles, la programmation du parcours devient extrêmement simple et rapide grâce à l'instruction POUR TOUT. En effet en lui précisant simplement le nœud du document à parcourir, elle se charge de tous les accès aux données. Chaque itération permet d'accéder aux données du document XML afin de les traiter.
Notez que la déclaration de la variable UnNoeudClient est facultative au niveau de l'exécution de l'application. Elle est cependant recommandée, afin bénéficier dans l'éditeur de code de la complétion sur les éléments de chaque nœud du document.
Pour plus de détails sur le type XMLDocument, consultez l'aide en ligne.
Source: le blog du ST