PreviousNext
Help > Programmation avec LAUNCHER Office > Les commandes LNCCMD > Liste des commandes > Commande PARSEXML
Commande PARSEXML

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('
XMLFile="Fichier XML"
;Tags="Liste de tags ou 1 seul tag"

[;Attribut="Nom attribut"]
')

CHGVAR

VAR(&PARM2) VALUE(' ')

CALL

PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +

&PARM2 &RESULT)

 

 

 Paramètres

 

Paramètres

 

Parm1
ou
Parm2

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.
Si on cherche la valeur d’un attribut, il ne faut spécifier qu’un seul tag.

 

 RESULT

En retour:
Liste des valeurs des tags passés en paramètres, séparées par des ';'. 

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.