Bonjour,
Je continue mon apprentissage du XSL sur le terrain à devoir changer des flux à la volée en urgence vu le peu de réaction de certains éditeurs.
J'ai un flux XML contenant un bout de code ci-après :
J'ai besoin que mes actes ngap FTPU dont l'activité liberal est à 'oui' soit changé en acte FTPR avec l'attribut liberal à 'non'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <actesNGAP> <acteNGAP action="création" executionDimancheJourFerie="non" executionNuit="non" facturable="oui" gratuit="non" porteeCle="l" valide="oui"> <identifiant> <emetteur>275560483</emetteur> </identifiant> <lettreCle>FTPU</lettreCle> <coefficient>1</coefficient> <denombrement>1</denombrement> <quantite>1</quantite> <execute> <date>2019-07-02</date> <heure>08:52:00</heure> </execute> <montant liberal="oui"> <montantTotal>93.53</montantTotal> <numeroForfaitTechnique>5065</numeroForfaitTechnique> <numeroAgrementAppareil>83779</numeroAgrementAppareil> <quantite>1</quantite> <numeroFacture>1394450810</numeroFacture> </montant> </acteNGAP>
J'ai donc commencé mon bout de code pour rechercher ma balise FTPU et changé l'attribut liberal à "non":
Mais je n'ai pas trouvé pour le moment dans ma rechercher sélectionner que les attribut liberal à "oui" et changer aussi le code FTPU en FTPR. Car je peux avoir des actes FTPU avec liberal à "non" et cela je ne dois pas les toucher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/> <xsl:param name="pLiberalValue" select="non"/> <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="//acteNGAP[lettreCle = 'FTPU']/montant/@liberal"> <xsl:attribute name="liberal"> <xsl:value-of select="$pLiberalValue"/> </xsl:attribute> </xsl:template> </xsl:stylesheet>
Merci pour votre aide.
Partager