pictogram Auteur: Patrick Biker
Date: 18 mars 2006
Maj : 21 Mars 2015

Des exemples d'utilisation des fonctions du WLangage

Rien de tel qu'un exemple pour comprendre une fonction de WLangage. Dans cette section, vous trouverez des exemples simples.

Des exemples évolués, où la fonction est utilisée en contexte, sont également disponible sur ce site.

Aller à la page des exemples évolués

TexteVersXML (en anglais TextToXML)

// Convertir une chaîne de caractères au format ANSI
// en une chaîne de caractères au format XML
sChaineXML est une chaîne = TexteVersXML ( "L'appareil est > à celui-ci")
// sChaineXML contient "L'appareil est > à celui-ci"


Début de la page

XMLAjouteAttribut (en anglais XMLAddAttribute)

// Ajout d'une nouvelle ligne de commande
XMLParent("CdeXML")
XMLAjouteFils("CdeXML", "lignecommande", "", Vrai )
XMLAjouteAttribut("CdeXML", "numero", "2")

// Ajout de la balise "codeproduit"
XMLAjouteFils("CdeXML", "codeproduit", "sro2125")

// Ajout de la balise "designation"
XMLAjouteFils("CdeXML", "designation", "souris optique")

// Ajout de la balise "quantité"
XMLAjouteFils("CdeXML", "quantité", "15")


Début de la page

XMLAjouteFils (en anglais XMLAddChild)

// Ajout d'une nouvelle ligne de commande
XMLParent("CdeXML")
XMLAjouteFils ("CdeXML", "lignecommande", "", Vrai )
XMLAjouteAttribut("CdeXML", "numero", "2")

// Ajout de la balise "codeproduit"
XMLAjouteFils ("CdeXML", "codeproduit", "sro2125")

// Ajout de la balise "designation"
XMLAjouteFils ("CdeXML", "designation", "souris optique")

// Ajout de la balise "quantité"
XMLAjouteFils ("CdeXML", "quantité", "15")


Début de la page

XMLAnnuleRecherche (en anglais XMLCancelSearch)

//Recherche de la balise "<prix>"
XMLRecherche("DocXML", "prix", XMLBalise )
TANTQUE XMLTrouve("DocXML")
  Info("Balise trouvée " + XMLNomElément("DocXML"))
  XMLSuivant("DocXML")
FIN

//Annule la recherche en cours
XMLAnnuleRecherche ("DocXML")

//Reprise d'un parcours standard
XMLPremier("DocXML")
TANTQUE PAS XMLEnDehors("DocXML")
  //Opérations
  XMLSuivant("DocXML")
FIN


Début de la page

XMLConstruitChaine (en anglais XMLBuildString)

SourceXML est une chaîne
Res est un booléen
//Chargement du contenu XML
SourceXML = fChargeTexte("exemple.xml")

//Création du document XML
Res =XMLDocument("DocXML", SourceXML)

// Modification du document XML
SourceXML = XMLConstruitChaîne ("DocXML")

//Enregistrement du fichier XML
fSauveTexte("ExampleModifié.xml",SourceXML)


Début de la page

XMLDernier (en anglais XMLLast)

//Positionne sur le dernier élément
XMLDernier ("DocXML")
TANTQUE PAS XMLEnDehors("DocXML")
   //Traitements des données
   XMLPrécédent("DocXML")
FIN


Début de la page

XMLDocument (en anglais XMLDocument)

SourceXML est une chaîne
Res est un booléen
//Chargement du contenu XML
SourceXML = fChargeTexte("C:\Temp\exemple.xml")

//Création du document XML
Res = XMLDocument ("DocXML", SourceXML)

//Le document est créé ?
SI Res = Faux ALORS
  Erreur("Le problème suivant a été détecté : "+ ErreurInfo())
SINON
  Info("Le document a bien été créé. Il est prêt à être utilisé.")
FIN

// Modification du document
...

// Reconstruction de la chaîne XML
SourceXML = XMLConstruitChaîne ( "DocXML"
)

// Sauvegarde du document XML dans un fichier
fSauveTexte("C:\Temp\ExempleModifié.xml",SourceXML)


Début de la page

XMLDonnee (en anglais XMLData)

Valeur est une chaîne
Valeur = XMLDonnée ("DocXML")

//Positionné sur une balise ?
SI ErreurDétectée ALORS
  Erreur(ErreurInfo())
SINON
  //Test de la valeur
  SI Valeur = "" ALORS
    Erreur("L'élément en cours n'a pas de valeur")
  SINON
    Info("La valeur de l'élément courant est : " + Valeur)
  FIN
FIN


Début de la page

XMLEnDehors (en anglais XMLOut)

//Lecture du premier élément
XMLPremier("DocXML")

//Balise trouvée ?
SI XMLEnDehors ("DocXML") = Faux ALORS
  Info("Balise courante : " + XMLNomElement("DocXML"))
FIN


Début de la page

XMLExecuteXPath (en anglais XMLExecuteXPath)

// Chargement du fichier XML
Mondoc est une chaîne
Mondoc = fChargeTexte("exemple.xml")
// Texte de la requête : Recherche de la balise Index
RequeteXPATH est une chaîne = "Aide/Fonction/Index"
// Création du document
XMLDocument("exemple", Mondoc)
SI ErreurDétectée ALORS
   Erreur("le fichier n'est pas au format XML")
   RETOUR
FIN
b est un booléen
b= XMLexécuteXPath ("mondoc", RequeteXPATH)
//est-ce une requête de calcul
SI b ET XMLEnDehors("mondoc") ALORS
    //voilà le résultat du calcul
    Trace("XMLResultat="+XMLRésultat("mondoc"))
FIN
//est-ce une requête XPATH de sélection ?
SI XMLTrouve("mondoc") ALORS
   //parcours de la sélection résultat
   TANTQUE XMLTrouve("mondoc")
      Trace(XMLPosition("mondoc"))
      XMLSuivant("mondoc")
   FIN
   //parcours terminé, on termine la requête
   XMLAnnuleRecherche("mondoc")
FIN


Début de la page

XMLExtraitChaine (en anglais XMLExtractString)

//Chargement du code XML
SourceXML est une chaîne = fChargeTexte("exemple.xml")
Résultat est une chaîne
i est un entier = 1

//Extraction du code XML contenu dans la première balise "<operation>"
Résultat = XMLExtraitChaîne (SourceXML, "operation", i)
TANTQUE Résultat <> ""
  Trace(Résultat)
  i = i + 1
  //Extraction du code XML contenu dans la balise "<operation>" suivante
  Résultat = XMLExtraitChaîne (SourceXML, "operation", i)
FIN


Début de la page

XMLExtraitDocument (en anglais XMLExtractDocument)

SourceXML est une chaîne
Res est un booléen
//Chargement du contenu XML
SourceXML = fChargeTexte("C:\Temp\exemple.xml")

//Création du document XML
Res = XMLDocument("DocXML", SourceXML)

//Le document est créé ?
SI Res = Faux ALORS
  Erreur("Le problème suivant a été détecté : "+ ErreurInfo())
SINON
  Res =  XMLExtraitDocument ("DocXML","MonNouveauDoc")
  SI Res = Faux ALORS
       Erreur("Le problème suivant a été détecté : "+ ErreurInfo())
  SINON
       Info("Nouveau document créé")
  FIN
FIN


Début de la page

XMLFils (en anglais XMLChild)

//Récupération du contenu XML du fichier "commande.xml"
Source est une chaîne = fChargeTexte("commande.xml")
//Création du document XML
XMLDocument("CdeXML", Source)
SI ErreurDétectée ALORS
  Erreur("Erreur lors de la création du document XML")
  RETOUR
SINON
  //Parcours effectué avec XMLPremier, XMLSuivant
  //Positionne sur l'élément "<commande>"
  XMLPremier("CdeXML")
  //Descend d'un niveau et positionne sur l'élément "<numero>"
  XMLFils ("CdeXML")
  //Récupère le numéro de la commande
  NumCde est un entier = Val(XMLDonnée("CdeXML")) //contient 1
FIN


Début de la page

XMLFilsExiste (en anglais XMLChildExist)

Mondoc est une chaîne

Mondoc = fChargeTexte("exemple.xml")
XMLDocument("exemple ", Mondoc)
SI ErreurDétectée ALORS
   Erreur("le fichier n’est pas au format XML")
   RETOUR
FIN

//parcourt le fichier et indique si la balise possède un attribut
XMLRecherche("exemple", Null )
TANTQUE PAS XMLEnDehors("exemple")
   SI XMLFilsExiste ("exemple", XMLAttribut )
      Trace(XMLNomElément("exemple")+" a des attributs ")
   SINON
      Trace(XMLNomElément("exemple")+" n’a pas d’attributs ")
   FIN
   XMLSuivant("exemple")
FIN
XMLTermine("exemple"


Début de la page

XMLInsereDocument (en anglais XMLInsertDocument)

Resultat est un booléen
Résultat = XMLInsèreDocument ("MondocCible","MonDocSource", XMLSousElément )
SI résultat = Vrai ALORS
   Info("Insertion réussie")
SINON
   Info("Insertion échouée")
FIN


Début de la page

XMLModifie (en anglais XMLModify)

// Positionnement sur la racine
XMLRacine( "monDocXML" )

// Remplacement des liens
XMLRecherche("mondocXML","Lien", XMLBalise )
TANTQUE XMLTrouve("mondocXML")
    // Calcul de la nouvelle valeur du lien
    
nouveau_lien
= Traitement_Lien(XMLDonnée("mondocxml"))
    // Modification dans le document XML
    XMLModifie ("mondocXML",nouveau_lien)
    XMLSuivant("mondocXML")

FIN


Début de la page

XMLNomElement (en anglais XMLElementName)

NomBalise est une chaîne
//Récupère le nom de l'élément en cours
NomBalise = XMLNomElément ("DocXML")

//Positionné sur un élément ?
SI ErreurDétectée ALORS
  Erreur("Aucune balise en cours")
SINON
  Info("Le nom de l'élément courant est : " + NomBalise)
FIN


Début de la page

XMLNomParent (en anglais XMLParentName)

NomBalise est une chaîne
NomBalise = XMLNomParent ("DocXML")

//Positionné sur une balise ?
SI ErreurDétectée ALORS
  Erreur(ErreurInfo())
SINON
  Info("Le nom de la balise parente est : " + NomBalise)
FIN


Début de la page

XMLParent (en anglais XMLParent)

//Parcours effectué avec XMLPremier, XMLSuivant ...
//Positionne sur l'élément "<commande>"
XMLDernier("CdeXML")
//remonte d'un niveau et positionne sur l'élément "<numero>"
XMLParent ("CdeXML")
//Récupère le numéro de la commande
NumCde est un entier = Val(XMLDonnée("DocXML")) //contient 1
//Positionne sur l'élément suivant
XMLSuivant("CdeXML")
//Récupère la date de la commande
DateCde est une chaîne = XMLDonnée(" CdeXML ") //"20/11/2002"


Début de la page

XMLPosition (en anglais XMLPath)

Res est une chaîne
Res = XMLPosition ("MonDocument")
// Res est de la forme : /COMMANDE/LIGNECDE[2]@NUMERO sur un attribut
// Res est de la forme : /COMMANDE/LIGNECDE[1] sur une balise fille
// Res est de la forme : /COMMANDE sur une balise


Début de la page

XMLPrecedent (en anglais XMLPrevious)

//Positionne sur le dernier élément
XMLDernier("DocXML")
TANTQUE PAS XMLEnDehors("DocXML")
   //Traitements des données
    XMLPrécédent ("DocXML")
FIN 


Début de la page

XMLPremier (en anglais XMLFirst)

//Positionne sur le premier élément
XMLPremier ("DocXML")
TANTQUE PAS XMLEnDehors("DocXML")
   //Traitements des données
   XMLSuivant("DocXML")
FIN


Début de la page

XMLRacine (en anglais XMLRoot)

SI XMLDocument("mondocXML",CodeXML) = Vrai ALORS
    // Recherche des liens 
    XMLRecherche("mondocXML","a", XMLBalise )
    TANTQUE XMLTrouve("monDocXML")
       // Traitement
       // ...
       //Elément suivant dans la recherche
    XMLSuivant("monDocXML")
    FIN
    // Positionnement sur la racine
    XMLRacine ("monDocXML")
    // Nouvelle recherche
    XMLRecherche("mondocXML","Lien", XMLBalise )
    TANTQUE XMLTrouve("mondocXML")
       // Traitement
       // ...
       //Elément suivant dans la recherche
       XMLSuivant("mondocXML")
    FIN

FIN


Début de la page

XMLRecherche (en anglais XMLFind)

//Recherche à partir de la position courante
XMLRecherche ("DocXML", "pri", XMLBalise + XMLSousElément , XMLCommencePar )
TANTQUE XMLTrouve("DocXML")
   Info("Balise trouvée " + XMLNomElément("DocXML"))
   //Elément suivant dans la recherche
   XMLSuivant("DocXML")
FIN
XMLAnnuleRecherche("DocXML")

//Positionne à la racine du document
XMLRacine("DocXML")
//Recherche à l'indentique à partir du début du document
XMLRecherche ("DocXML", "prix", XMLBalise + XMLContinue , XMLExact )
TANTQUE XMLTrouve("DocXML")
   Info("Balise trouvée " + XMLNomElément("DocXML"))
  //Elément suivant dans la recherche
  XMLSuivant("DocXML")
FIN
XMLAnnuleRecherche("DocXML")


Début de la page

XMLResultat (en anglais XMLResult)

// Chargement du fichier XML
Mondoc est une chaîne
Mondoc = fChargeTexte("exemple.xml")
// Texte de la requête : Recherche de la balise Index
RequeteXPATH est une chaîne = "Aide/Fonction/Index"
// Création du document
XMLDocument("exemple", Mondoc)
SI ErreurDétectée ALORS
   Erreur("le fichier n'est pas au format XML")
   RETOUR
FIN
b est un booléen
b=XMLexécuteXPath("mondoc", RequeteXPATH)
//est-ce une requête de calcul
SI b ET XMLEnDehors("mondoc") ALORS
    //voilà le résultat du calcul
    Trace("XMLResultat="+ XMLRésultat ("mondoc"))
FIN
//est-ce une requête XPATH de sélection ?
SI XMLTrouve("mondoc") ALORS
   //parcours de la sélection résultat
   TANTQUE XMLTrouve("mondoc")
      Trace(XMLPosition("mondoc"))
      XMLSuivant("mondoc")
   FIN
   //parcours terminé, on termine la requête
   XMLAnnuleRecherche("mondoc")
FIN


Début de la page

XMLRetourPosition (en anglais XMLRestorePosition)

SI XMLDocument("mondocXML",CodeXML) = Vrai ALORS
   // Recherche des liens
   XMLRecherche("mondocXML","a", XMLBalise )
   TANTQUE XMLTrouve("monDocXML")
      SI XMLFilsExiste("mondocXML", XMLAttribut ) ALORS
         PositionXML est un entier = XMLSauvePosition("mondocXML")
         XMLFils("mondocxml")
         Trace(chemin+fichier, XMLDonnée("mondocxml"))
         // Traitement
         XMLRetourPosition ("mondocxml",PositionXML, XMLRPFiltre
      FIN
      //Elément suivant dans la recherche
      XMLSuivant("monDocXML")
    FIN
FIN


Début de la page

XMLSauvePosition (en anglais XMLSavePosition)

SI XMLDocument("mondocXML",CodeXML) = Vrai ALORS
   // Recherche des liens
   XMLRecherche("mondocXML","a", XMLBalise )
   TANTQUE XMLTrouve("monDocXML")
      SI XMLFilsExiste("mondocXML", XMLAttribut ) ALORS
         PositionXML est un entier = XMLSauvePosition ("mondocXML")
         XMLFils("mondocxml")
         Trace(chemin+fichier, XMLDonnée("mondocxml"))
         // Traitement
         XMLRetourPosition("mondocxml",PositionXML, XMLRPFiltre
      FIN
      //Elément suivant dans la recherche
      XMLSuivant("monDocXML")
    FIN
FIN


Début de la page

XMLSuivant (en anglais XMLNext)

// Cas 1 : sans recherche
XMLPremier("DocXML")
TANTQUE PAS XMLEnDehors("DocXML")
  //Traitements des données
  XMLSuivant ("DocXML")
FIN


Début de la page

XMLSuivant (en anglais XMLNext)

// Cas 2 : avec recherche
XMLRecherche("DocXML", "balise")
TANTQUE XMLTrouve("DocXML")
  //Traitements des données
  XMLSuivant ("DocXML")
FIN


Début de la page

XMLTermine (en anglais XMLClose)

XMLDocument("DocXML", CodeXML)
//Traitement et analyse du document XML
// ...

XMLTermine("DocXML")


Début de la page

XMLTrouve (en anglais XMLFound)

// Rechercher la balise qui commence par "pri"
XMLRecherche
("DocXML", "pri", XMLBalise + XMLSousElément , XMLCommencePar )
TANTQUE XMLTrouve ("DocXML")
  Info("Balise trouvée " + XMLNomElément("DocXML"))
  //Elément suivant dans la recherche
  XMLSuivant("DocXML")
FIN


Début de la page

XMLTrouve (en anglais XMLFound)

// Parcours d'un document
XMLPremier
("DocXML")
//Balise trouvée ?
SI XMLTrouve ("DocXML") ALORS
  Info("Balise courante : " + XMLNomElement("DocXML"))
FIN


Début de la page

XMLTypeElement (en anglais XMLElementType)

XMLPremier("DocXML")
SELON XMLTypeElement ("DocXML")
  CAS XMLBalise :  Info(XMLNomElément("DocXML")+" est de type XMLBalise")
  CAS XMLAttribut : Info(XMLNomElément("DocXML")+" est de type XMLAttribut")
FIN


Début de la page

XMLVersTexte (en anglais XMLToText)

// Convertir une chaîne de caractères au format XML
// en une chaîne de caractères au format ANSI
sChaîneAnsi est une chaîne
sChaîneAnsi = XMLVersTexte ("X est &gt; que Y")
// sChaîneAnsi contient "X est > que Y"


Début de la page

XMLVersTexte (en anglais XMLToText)

Mondoc est une chaîne
Mondoc = fChargeTexte(" exemple.xml ")
Resultat est une chaîne
i est un entier=1
Resultat=XMLExtraitChaine(Mondoc , "NOM", i)
TANTQUE resultat<>""
   Trace(resultat)
   i=i+1
   Resultat= XMLVersTexte (XMLExtraitChaine(Mondoc , "NOM", i))
FIN
// Dans la trace, on doit voir apparaître :
// navets
// echalotte


Début de la page