Bonjour,
Voici mes données :
<BLOC ETAPE="1" PRODUIT="P1" QTE_COMMANDEE="5" PRIX="10"/>
<BLOC ETAPE="1" PRODUIT="P2" QTE_COMMANDEE="8" PRIX="8"/>
J'aimerai copier mon XML mais en même temps rajouter une colonne TOTAL telle que TOTAL=QTE_COMMANDE*PRIX (j ai simplifié le truc pour avoir l idée générale ... En vrai mes calculs sont plus complexes dc je suis obligé de passer par une variable intermediaire)
Et donc avoir :
<BLOC ETAPE="1" PRODUIT="P1" QTE_COMMANDEE="5" PRIX="10" TOTAL="50"/>
<BLOC ETAPE="1" PRODUIT="P2" QTE_COMMANDEE="8" PRIX="8" TOTAL="64"/>
Voici ce que je fais :
Mais ça ne marche pas ...<x:template match="*">
<x:copy-of select="."/>
</x:template>
<x:template match="@*|comment()|text()">
<x:copy/>
</x:template>
<x:template match="BLOC">
<x:for-each select="@*">
<x:variable name="qte" select="@QTE_COMMANDEE"/>
<x:variable name="prix" select="@PRIX"/>
<x:variable name="total"><x:value-of select="$qte * $prix"></x:variable>
<x:copy>
<x:attribute name="TOTAL">$total</x:attribute>
</x:copy>
</x:for-each>
</x:template>
Mes données précédentes sont bien copiées mais j ai pas mes nouveaux attributs !
Partager