PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

PV

  • Principe de manipulation d'un document XML
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
Principe de manipulation d'un document XML
Deux méthodes peuvent être utilisées pour manipuler un document XML :
  1. Utilisation d'une variable de type xmlDocument (Méthode conseillée). Cette méthode permet d'utiliser un fichier de type XSD.
    Plusieurs types de variables spécifiques sont disponibles :
    xmlAttributLe type xmlAttribut permet de manipuler les attributs d'un noeud dans un document XML.
    xmlDocumentLe type xmlDocument permet de manipuler simplement un fichier XML.
    xmlNamespaceLe type xmlNamespace permet de manipuler l'espace de nommage XML d'un attribut de noeud dans un document XML.
    xmlNoeudLe type xmlNoeud permet de manipuler un noeud d'un document XML.

    Plusieurs fonctions spécifiques permettent de manipuler les variables de type xmlDocument
    XMLConstruitChaîneRécupère et met en forme le contenu d'un document XML (créé avec la fonction XMLDocument et modifié grâce aux fonctions XML).
    XMLDocumentValideValide un document XML à partir d'un schéma XSD.
    XMLOuvreCharge un document XML à partir d'un fichier, d'une URL ou d'une chaîne dans une variable de type xmlDocument.
    XMLSauveSauvegarde un document XML dans un fichier.
  2. Utilisation d'une variable de type chaîne pour stocker le document XML. Le document XML peut être ensuite manipulé grâce aux différentes fonctions XML.
    Les différentes fonctions de gestion des documents XML sont les suivantes :
    JSONVersXMLConvertit une chaîne de caractères au format JSON en une chaîne de caractères au format XML.
    TexteVersXMLConvertit une chaîne de caractères au format ANSI en une chaîne de caractères au format XML.
    XMLAjouteAttributAjoute un attribut dans un document XML.
    XMLAjouteFilsAjoute une balise fille dans un document XML.
    XMLAnnuleRechercheAnnule la recherche effectuée par la fonction XMLRecherche.
    XMLChercheNamespaceParNomRecherche un namespace (espace de nommage) XML à partir de son nom dans un noeud XML et dans les parents de ce noeud.
    XMLChercheNamespaceParURIRecherche un namespace (espace de nommage) XML à partir de son URI (Universal Resource Identifier) dans un noeud et dans les parents de ce noeud.
    XMLConstruitChaîneRécupère et met en forme le contenu d'un document XML (créé avec la fonction XMLDocument et modifié grâce aux fonctions XML).
    XMLDernierPositionne sur le dernier élément (balise ou attribut) du niveau en cours de l'arborescence.
    XMLDocumentCrée un nouveau document XML.
    XMLDocumentValideValide un document XML à partir d'un schéma XSD.
    XMLDonnéeRenvoie la valeur de l'élément en cours (balise ou attribut XML) ou d'un de ses attributs.
    XMLEcritCrée ou modifie la valeur d'un élément XML, ou la valeur de l'attribut d'un élément XML.
    XMLEnDehorsPermet de savoir si l'élément (balise ou attribut) sur lequel on veut se positionner est en dehors du document XML.
    XMLExécuteXPathExécute une requête XPATH :
    • dans un document XML.
    • dans une variable de type xmlDocument.
    XMLExtraitChaîneExtrait le contenu d'une balise dans un document XML.
    XMLExtraitDocumentCrée un nouveau document XML à partir d'une partie d'un document XML existant.
    XMLFilsPositionne sur le premier élément fils de l'élément en cours.
    XMLFilsExisteIndique si la balise courante a des fils correspondant au type recherché (balise, attribut, ...).
    XMLInsèreDocumentInsère la balise XML en cours présente dans un document XML dans un autre document XML.
    XMLInsèreElémentInsère un élément (balise ou attribut) XML dans un document XML.
    XMLLitRenvoie la valeur d'un élément XML ou la valeur de l'attribut d'un élément XML.
    XMLModifieModifie le contenu de l'élément courant dans un document XML.
    XMLNamespaceRenvoie le préfixe de l'espace de nommage de la balise courante dans un document XML.
    XMLNamespaceURIRenvoie l'URI de définition de l'espace de nommage de la balise courante dans un document XML.
    XMLNoeudValideValide un noeud XML, ses fils et ses attributs à partir de sa description dans le schéma XSD lié au document XML.
    XMLNomElémentRenvoie le nom de l'élément en cours (balise ou attribut).
    XMLNomParentRenvoie le nom de la balise parente de l'élément (balise ou attribut) en cours.
    XMLOuvreCharge un document XML à partir d'un fichier, d'une URL ou d'une chaîne dans une variable de type xmlDocument.
    XMLOuvreLecteurCrée un lecteur permettant de lire un document XML sans le charger en mémoire.
    XMLParentPositionne sur l'élément parent de l'élément en cours (balise ou attribut).
    XMLPositionRenvoie la position en cours dans le document sous la forme XPATH.
    XMLPrécédentPositionne sur l'élément (balise ou attribut) précédent.
    XMLPremierPositionne sur le premier élément (balise ou attribut) du niveau en cours de l'arborescence.
    XMLRacinePositionne sur la balise racine d'un document XML.
    XMLRechercheLance une recherche dans un document XML.
    XMLRenommeModifie le nom de l'élément courant (balise ou attribut) dans un document XML.
    XMLRésultatDonne le résultat d'une requête XPath de calcul.
    XMLRetourPositionRestaure le contexte précédemment sauvegardé d'un document XML.
    XMLSauveSauvegarde un document XML dans un fichier.
    XMLSauvePositionMémorise la position en cours dans le document XML.
    XMLSigneSigne un document XML.
    XMLSuivantPositionne sur l'élément suivant (balise ou attribut).
    XMLSupprimeSupprime l'élément courant d'un document XML, ainsi que toute la branche qui en découle.
    XMLTermineFerme un document XML créé avec XMLDocument.
    XMLTrouveVérifie si l'élément en cours correspond au parcours ou à la recherche en cours.
    XMLTypeElementRenvoie le type de l'élément en cours (balise ou attribut).
    XMLVersJSONConvertit une chaîne de caractères au format XML en une chaîne de caractères au format JSON.
    XMLVersTexteConvertit une chaîne de caractères au format XML en une chaîne de caractères standard.
Certaines fonctions sont également liées à la gestion du XML :
HEnregistrementVersXMLRécupère la structure et la valeur de l'enregistrement en cours et les exporte dans une chaîne de caractères au format XML.
HExporteXMLExporte les enregistrements d'un fichier de données (HFSQL ou OLE DB), d'une vue ou d'une requête dans un fichier XML.
HImporteXMLImporte un fichier XML dans un fichier de données au format HFSQL Classic ou Client/Serveur (fichier de données décrit sous l'éditeur d'analyses ou déclaré par les fonctions HDéclare, HDéclareExterne ou HDécritFichier).
J2EEExécuteXMLExécute une procédure sur un serveur de services Web XML J2EE.
SOAPExécuteXMLExécute une procédure sur un serveur SOAP.
TableVersXMLCrée un fichier XML avec les données d'un champ Table ou Table hiérarchique.
ZoneRépétéeVersXMLCrée un fichier XML avec les données d'un champ Zone répétée (champ Zone répétée fichier ou champ Zone répétée par programmation).
Liste des exemples associés :
Lecture et écriture au format XML Exemples unitaires (WINDEV) : Lecture et écriture au format XML
[ + ] Utilisation des fonctions de XMLxxx pour :
- Créer un document XML
- Lire un document XML
Parseur XML Exemples unitaires (WINDEV) : Parseur XML
[ + ] Analyse du contenu d'un fichier XML grâce aux fonctions XMLxxx de WINDEV
WD Coloration Syntaxique Exemples didactiques (WINDEV) : WD Coloration Syntaxique
[ + ] Cet exemple propose une classe de base permettant d'effectuer une coloration syntaxique classique sur du texte.
Cette coloration est basée sur une analyse brute des lemmes d'un texte afin d'en identifier les éléments d'un langage de programmation par exemple.
Elle peut être surchargée ou dérivée afin de personnaliser le système et le langage de coloration.
L'exemple fourni permet de coloriser du code SQL et du code XML, mais peut être étendu pour coloriser d'autres langages ou d'autres formes de texte.
WD Multimedia Exemples complets (WINDEV) : WD Multimedia
[ + ] Cet exemple montre comment jouer des vidéos (AVI, MPEG...), des sons (CD AUDIO, MP3, WAV) et des animations avec le champ Multimédia de WINDEV.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Ecart de comportement entre WD et WD Mobile sous Android
Écart de comportement je pense lié au parser XML utilisé par Windev.

Soit le XML suivant :

<root>
<group>
<column name="CHAMP1">
<libel>N° Fiche</libel>
</column>
</group>
</root>

et le code suivant :

gXml est un xmlDocument = XMLOuvre(gsParamNomXml,depuisFichier)
POUR TOUT group DE gXml.root SUR group
Trace(group.libel)
FIN

La balise <libel> n'existant pas sous la balise <group>, WD retourne une chaîne vide... par contre, WD Mobile sous Android (4.4) retour "N° Fiche" !

(Testé sous WD V24)
Patrick MOIRE
31 oct. 2019