Lire et analyser un fichier XML
Préambule
De par sa structure souple et hiérarchisée, le format XML est un très bon format pour transporter des données répondant à une structure plus complexe que le traditionnel modèle ligne / colonne. Cependant, il nécessite des outils plus performants que la simple lecture séquentielle d'un fichier Ascii.
Visualiseur de fichier XML
La méthode décrite ci-après (XML2Tabs) est utilisée dans l'outil de visualisation de fichier XML. Afin de faciliter la mise au point d'un traitement d'un fichier XML, il est utile d'activer le visualiseur.
Contenu du script d'appel de l'analyseur XML :
xDialog ("DXML";"Analyseur XML")
Méthode XML2Tabs
Cette méthode lit un fichier XML et charge son contenu (étiquettes, valeurs, attributs et niveaux) dans des tableaux.
Syntaxe
XML2Tabs ("document" ; "tableaux" ; "option")
Paramètre : document
Indique la source XML à traiter : un nom de fichier valide ou un nom blob dans lequel aurait été préalablement chargé un fichier XML (exemple : BxBlob).
Pour plus de détails sur l'analyse effectuée sur la source XML, voir la documentation 4D relative à : "DOM Analyser source XML".
Paramètre : tableaux
Par défaut, les quatres tableaux suivants sont alimentés : TT_Info1 (étiquettes) ; TT_Info2 (valeurs) ; TT_Info3 (attributs) et ETx (niveaux). Il est cependant possible de désigner d'autres tableaux en indiquant leur nom dans l'ordre indiqué ci-dessus et en les séparant par des signes ":".
Rappel : vous ne pouvez utiliser que des noms de tableaux existant déjà dans l'application.
Paramètre : option
Si "*" figure dans ce paramètre, les éventuels xml inclus dans une valeur xml seront également analysés (certains serveurs en SRW encapsulent du xml dans du xml).
Si "+" figure dans ce paramètre, les étiquettes (premier tableau) seront cumulées, si "." figure dans ce paramètre, les étiquettes seront indentées.
Exemple
Hx:=Ouvrir document ("";"";Mode lecture )
Si (OK=1)
FERMER DOCUMENT(Hx)
XML2Tabs (document;"TT_Info11:TT_Info12:TT_Info13:ETx";"+")
Boucle (Ex;1;Taille tableau(TT_Info11))
...
Fin de boucle
Fin de si
Propose à l'utilisateur d'ouvrir un fichier puis analyse le contenu, le charge dans les tableaux TT_Info11, TT_Info12, TT_Info13 et ETx. Les étiquettes sont cumulées par niveaux.
Voir aussi : Créer un fichier XML.
Powered by KENTIKA Atomic - © Kentika 2020 tous droits réservés - Mentions légales