http://blogs.pcsoft.fr/blogs.awp
Depuis la version 15 de WINDEV, WEBDEV et WINDEV Mobile le parcours de document XML a été considérablement simplifié grâce au
type XMLDocument. Il évite l'utilisation des fonctions XMLLit bien moins pratiques faute de complétion dans l'éditeur de code.
Il
peut arriver d'avoir à construire dynamiquement tout ou partie du
chemin d'accès aux données XML lors de l'exécution, et non pas lors de
l'écriture du code. C'est possible, comme pour l'accès à un champ, grâce
aux opérateurs d'indirection, les accolades :
opérateurs d'indirection
L'aide
n'avait pas encore l'information, et sera rapidement complétée, voici
en attendant une illustration. Le code suivant peut être copié/collé
dans un bouton il est autonome et permet en pas à pas de bien cerner le
mécanisme :
sDocXML est une chaîne = [
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<InfoVersion>
<Version>21</Version>
<Millesime>2016</Millesime>
</InfoVersion>
</Document>
]
xmlExemple est un xmlDocument = XMLOuvre (sDocXML, depuisChaîne )
Trace (xmlExemple.Document.InfoVersion.Version)
sParamètre est une chaîne = "InfoVersion"
Trace ({"xmlExemple.Document."+sParamètre+".Version"})
http://blogs.pcsoft.fr/post.awp?title=utilisez-type-xmldocument-pour-faciliter-lecture-donnees-des-documents-xml,2,258
|
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)
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.
|
|
|
http://doc.pcsoft.fr/fr-FR/?3081008&name=xmldocument-fonction