DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des fichiers XML
  • Syntaxe 2 : Exécuter une requête XPATH sur un document XML : Lecture du résultat de la requête
  • Limitations
  • Fonctions XML et threads
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
Exécute une requête XPATH :
  • dans une variable de type xmlDocument.
    WEBDEV - Code NavigateurPHP Non disponible.
  • dans un document XML.
    AndroidWidget Android Non disponible.
PHP Seules les requêtes de calcul effectuées dans un document XML sont supportées en PHP.
Exemple
clDoc est un xmlDocument = XMLOuvre(n, depuisChaîne)
c est un xpathRésultat = XMLExécuteXPath(clDoc, "/root/text()")
SI c.EstValeur ALORS
Trace(c.Valeur)
SINON
POUR TOUT UnNoeud DE c.Noeud
Trace("Noeud : " + UnNoeud..Texte)
FIN
POUR TOUT attrib DE c.Attribut
Trace("Noeud : " + attrib.Nom)
FIN
FIN
// Chargement du fichier XML
MonDoc est une chaîne
MonDoc = fChargeTexte("exemple.xml")
// Texte de la requête : Recherche de la balise Index
RequêteXPATH est une chaîne = "Aide/Fonction/Index"
// Création du document
XMLDocument("Exemple", MonDoc)
SI ErreurDétectée = Vrai ALORS
Erreur("Le fichier n'est pas au format XML.")
RETOUR
FIN
b est un booléen
b = XMLExécuteXPath("Exemple", RequêteXPATH)
// Est-ce une requête de calcul ?
SI b = Vrai ET XMLEnDehors("Exemple") = Vrai ALORS
 // Voilà le résultat du calcul
 Trace("XMLRésultat=" + XMLRésultat("Exemple"))
FIN
// Est-ce une requête XPath de sélection ?
SI XMLTrouve("Exemple") = Vrai ALORS
// Parcours de la sélection résultat
TANTQUE XMLTrouve("Exemple") = Vrai
Trace(XMLPosition("Exemple"))
XMLSuivant("Exemple")
FIN
// Parcours terminé, on termine la requête
XMLAnnuleRecherche("Exemple")
FIN
Syntaxe
WEBDEV - Code NavigateurPHP Syntaxe non disponible en PHP et en code navigateur

Exécuter une requête XPATH sur une variable de type xmlDocument Masquer les détails

<Résultat> = XMLExécuteXPath(<Document XML> , <Texte de la requête XPath>)
<Résultat> : Variable de type xpathRésultat
Variable de type xpathRésultat contenant le résultat de la requête XPATH.
Lecture du résultat :
  • La propriété EstValeur permet de savoir si le résultat est une valeur.
  • Pour une requête de sélection (le résultat n'est pas une valeur), il est nécessaire de parcourir la variable xpathRésultat.
  • Pour une requête de calcul (le résultat est une valeur), la propriété Valeur permet de lire le résultat.
<Document XML> : Variable de type xmlDocument
Nom de la variable de type xmlDocument contenant le code XML à analyser.
<Texte de la requête XPath> : Chaîne de caractères
Texte de la requête XPath à exécuter.
AndroidWidget Android Syntaxe non disponible en Android et Android Widget

Exécuter une requête XPATH sur un document XML (syntaxe conservée par compatibilité) Masquer les détails

<Résultat> = XMLExécuteXPath(<Nom du Document XML> , <Texte de la requête XPath>)
<Résultat> : Booléen
  • Vrai si la requête a été exécutée,
  • Faux dans le cas contraire ou si aucun élément ne correspond à la requête.
Lecture du résultat :
  • Pour une requête de sélection, si la requête XPATH a été exécutée, les fonctions de parcours XML permettent de parcourir le résultat de la requête XPATH.
  • Pour une requête de calcul, la fonction XMLRésultat permet de lire le résultat.
<Nom du Document XML> : Chaîne de caractères
Nom du document XML manipulé. Ce document contient le code XML à analyser et a été créé avec la fonction XMLDocument.
<Texte de la requête XPath> : Chaîne de caractères
Texte de la requête XPath à exécuter.
Remarques
WINDEVUniversal Windows 10 AppiPhone/iPadCode Utilisateur (MCU)

Syntaxe 2 : Exécuter une requête XPATH sur un document XML : Lecture du résultat de la requête

Si la fonction XMLExécuteXPath renvoie Vrai, la requête a été correctement exécutée. Le résultat de la requête peut être lu de la manière suivante :
  • Requête de calcul : la fonction XMLTrouve renvoie Faux.
    Le résultat peut être lu avec la fonction XMLRésultat.
    Quelques exemples de requêtes de calcul :
    Comptage du nombre de balises dont le nom est "ITEM", c'est-à-dire le nombre d'articles différents dans la commande.count(//ITEM)
    Nombre de balises contenant un sous élément <PRICE>count(//*[PRICE])
    Total de la facturesum(//ITEM[PRICE])- sum(//COUPON[PRICE])
  • Requête de sélection d'enregistrements : la fonction XMLTrouve renvoie Vrai.
    Lors d'une requête de sélection, la fonction XMLExécuteXPath change la position courante dans le document XML en cours pour se positionner sur le premier élément résultat de la sélection. Ensuite, il suffit d'utiliser la fonction XMLSuivant pour parcourir la sélection.
    Quelques exemples de requêtes de sélection :
    Parcours de tous les éléments qui ont un attribut "unit".//*[@unit]
    Parcours de toutes les balises dont le nom est "ITEM".//ITEM

    Pour annuler la requête et pouvoir parcourir à nouveau tout le document, utilisez la fonction XMLAnnuleRecherche.

Limitations

  • Il n'est pas possible d'imbriquer plusieurs requêtes XPath de parcours.
  • Syntaxe 1 : Exécuter une requête XPATH sur une variable de type xmlDocument :
    • La liste des noeuds renvoyée n'est pas triée.
    • La norme utilisée pour la requête XPath est XPath 1.0.
  • Syntaxe 2 : Exécuter une requête XPATH sur un document XML :
    Les fonctions XMLSauvePosition et XMLRetourPosition ne permettent pas de sauver / restaurer une position lors du parcours du résultat d'une requête XPath de sélection.

Fonctions XML et threads

Si votre application utilise des threads, le document XML est partagé entre tous ces threads. Pour plus de détails sur la gestion des threads, consultez Gestion des threads.
Si la position courante dans un document XML est modifiée dans un thread, la position courante dans ce document XML est modifiée pour tous les threads.
Classification Métier / UI : Code métier
Composante : wd300xml.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale