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 :
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 besoin que mes actes ngap FTPU dont l'activité liberal est à 'oui' soit changé en acte FTPR avec l'attribut liberal à 'non'.
J'ai donc commencé mon bout de code pour rechercher ma balise FTPU et changé 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
<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>
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.

Merci pour votre aide.