ADELIA |
VADELIA |
SADELIA |
WADELIA |
MADELIA |
(I/B) |
(I/B) (C/S) |
(B) (S) |
(I/B) (C/S) |
(I) (C/S) |
Paragraphe d'utilisation
Tous.
Syntaxe
XML_RECUP_VAL NomIdentifiantXml <variable résultat>
ou
XML_RECUP_VAL NomIdentifiantXml SuiteAttributVar
SuiteAttributVar |
→ |
SuiteAttributVar, AttributVar | AttributVar |
AttributVar |
→ |
IdAttribut <variable résultat> |
IdAttribut |
→ |
<nom attribut> | &<variable alpha> | *TEXTE | *NOM | *PREFNS |
Description
Rend, dans les variables résultats, la valeur des attributs indiqués pour le noeud courant.
La directive *TEXTE permet de récupérer la valeur du texte du noeud. Si seul le texte associé au noeud doit être récupéré, cette directive peut être omise.
Le type de la variable résultat dépend du type sous lequel la valeur souhaite être récupérée.
*NOM permet de récupérer le nom local du noeud. Dans ce cas, la variable résultat est obligatoirement alphanumérique.
*PREFNS permet de récupérer le préfixe du noeud. Dans ce cas, la variable résultat est obligatoirement alphanumérique. *PREFNS retourne la valeur *BLANK si le noeud n'est pas préfixé.
Remarque : dans le cas de la lecture séquentielle d'un fichier XML (c'est-à-dire que l'identifiant XML a été déclaré avec l'option *SEQ), *NOM renverra des valeurs particulières suivant le type du nœud courant lu.
Nœud de type commentaire |
→ |
valeur renvoyée : #comment |
Nœud de type texte ou blanc |
→ |
valeur renvoyée : #text |
Noeud de type CDATA |
→ |
valeur renvoyée : #cdata-section |
Nœud de fin de nœud |
→ |
valeur renvoyée : /nom_du_nœud |
Après l'exécution de cet ordre, le mot réservé *CODE_RETOUR peut prendre les valeurs suivantes :
0 (*NORMAL) |
L'opération s'est bien déroulée. |
10 |
Au moins un attribut ou texte demandé n'existe pas pour le noeud courant. La variable est initialisée avec la valeur par défaut de son type. L'ordre s'exécute normalement pour les autres attributs. |
13 |
Erreur : l'identifiant XML n'est pas ouvert. |
-1 |
Erreur : pour au moins un attribut ou texte demandé, il y a eu un problème de conversion de type entre la valeur récupérée et la variable indiquée. |
27 |
Uri de l'espace de noms non trouvée. |
Par exemple
* récupération du texte du noeud courant
XML_RECUP_VAL xml1 WTEXTE
* récupération d'attributs et du texte du noeud courant
XML_RECUP_VAL xml1 Attribut1 Var1, Attribut2 Var2, *TEXTE Var3
* récupération d'attributs (dont les noms sont stockés dans des variables) et du texte du noeud courant
ALPHA(15) NomAttr1
ALPHA(15) NomAttr2
NomAttr1 = 'Attribut1'
NomAttr1 = 'Attribut2'
XML_RECUP_VAL xml1 &NomAttr1 Var1, &NomAttr2 Var2, *TEXTE Var3
* récupération d'attributs préfixés
XML_AJOUTER_NS xml1 'zz' 'urn:xmlns:25hoursaday-com:bookstore'
...
XML_RECUP_VAL xml1 zz:Attribut1 Var1, zz:Attribut2 Var2
* récupération du préfixe du noeud courant
XML_RECUP_VAL xml1 *PREFNS varPref