Permet de récupérer la valeur de tags dans un fichier XML, ou bien la valeur d’un attribut.
Syntaxe
CHGVAR |
VAR(&CMD) VALUE('PARSEXML') |
CHGVAR |
VAR(&PARM1) VALUE(' [;Attribut="Nom
attribut"] |
CHGVAR |
VAR(&PARM2) VALUE(' ') |
CALL |
PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 + &PARM2 &RESULT) |
Paramètres
Paramètres |
|
Parm1 |
XMLFile : Chemin complet et nom du fichier XML.
Tags: liste des tags dont on veut récupérer les valeurs, séparés par des ';'. Attribut : nom de
l’attribut du tag dont on veut récupérer la valeur.
|
RESULT |
En
retour: Si le paramètre Attribut est spécifié, on aura la valeur de l’attribut en retour.
|
Exemple 1
Supposons qu’on ait le XML suivant et qu’on veuille récupérer les valeurs suivantes (en rouge) :
<?xml version="1.0" encoding="utf-8"?>
<tnsb:Notification>
<tnsb:NotificationType>GENERAL</tnsb:NotificationType>
<tnsb:Request>
<tnsb:Type>PAPER</tnsb:Type>
<tnsb:TrackId>test_C33012646115</tnsb:TrackId>
<tnsb:DepositId>25527400032</tnsb:DepositId>
<tnsb:ReceptionDate>01/10/2015 1:17:34</tnsb:ReceptionDate>
<tnsb:FoldsCount>1</tnsb:FoldsCount>
<tnsb:Status>ACCEPT</tnsb:Status>
<tnsb:PaperOptions>
<tnsb:EnvelopeType>C6</tnsb:EnvelopeType>
<tnsb:PrintDuplex>false</tnsb:PrintDuplex>
<tnsb:DocumentCount>1</tnsb:DocumentCount>
<tnsb:BilledPageCount>2</tnsb:BilledPageCount>
<tnsb:PageCount>2</tnsb:PageCount>
</tnsb:PaperOptions>
</tnsb:Request>
</tnsb:Notification>
Si on exécute la commande suivante :
LNCCMDR CMD(PARSEXML) +
PARM1('XMLFILE="C:\A\notification.xml"; +
Tags="tnsb:Notification.tnsb:Request.tnsb:TrackId;tnsb:N+
otification.tnsb:Request.tnsb:ReceptionDate+
;tnsb:Notification.tnsb:Request.tnsb:Status') RESULT(&RESULT)
Alors en retour on aura :
*MSGtest_12;01/10/2015 1:17:34;ACCEPT
Exemple 2
Supposons qu’on ait le XML suivant et qu’on veuille récupérer les valeurs suivantes (en rouge) :
<?xml version="1.0" encoding="UTF-8"?>
<records>
<record name="export" type="extra" date="20200402">
<produits quantity="8" name="CatA">
<produit name="A1" value="AS1254"/>
<produit name="A2" value="UIPLH"/>
<produit name="A3" value="125698YT"/>
<produit name="A4" value="KJZ745"/>
<produit name="A5" value="POJ523"/>
<produit name="A6" value="127YUI"/>
<produit name="A7" value="RTFG58"/>
<produit name="A8" value="GHUP263"/>
Il faudra exécuter les commandes suivantes :
LNCCMDR CMD(PARSEXML) +
PARM1('XMLFILE="C:\test\produits.xml"+
;Tags="records.record";Attribut="type"') +
RESULT(&RESULT)
LNCCMDR CMD(PARSEXML) +
PARM1('XMLFILE="C:\test\produits.xml"+
;Tags="records.record.produits.produit[6]"+
;Attribut="value"') RESULT(&RESULT)
Veuillez noter que l’indice des tags commence à 0. Pour avoir le septième produit, on met donc l’indice = 6.