[XSLT][xalan] créer un identifiant
Bonjour, je cherche à créer un attribut id pour chaque noeud à partir du xsl, ce id commençant à 2 et s'incrémentant au fil des noeuds de l'arborescence.
Le format de l'attribut id="Id_x" du xml output est imposé.
Merci et à bientôt 8O
Bernols
Le fichier à transformer : SAPinput.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-16"?>
<SAP xsi:noNamespaceSchemaLocation="SAP.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ficheInformation>
<fiche>
<NomDuDocument>sap</NomDuDocument>
<TypeDuDocument>Fichier de données</TypeDuDocument>
<DateDeCreation>2006-01-30</DateDeCreation>
</fiche>
<fiche>
<NomDuDocument>sop</NomDuDocument>
<TypeDuDocument>Fichier de texte</TypeDuDocument>
<DateDeCreation>2006-01-30</DateDeCreation>
</fiche>
</ficheInformation>
</SAP> |
SAP.xsl
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
<!--modification de encoding-->
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
<xsl:template match="/SAP">
<ModeleExport>
<xsl:apply-templates select="ficheInformation"/>
</ModeleExport>
</xsl:template>
<!--conception de l'élément ficheInformation-->
<xsl:template match="ficheInformation">
<ficheInformation id="{concat('Id_',position()+1)}">
<xsl:for-each select="fiche">
<fiche id="{concat('Id_',position()+'@id')}">
<NomDuDocument>
<xsl:value-of select="NomDuDocument"/>
</NomDuDocument>
<TypeDuDocument>ModeleExport</TypeDuDocument>
<DateDeCreation>
<xsl:value-of select="DateDeCreation"/>
</DateDeCreation>
<InformationUsager>
<xsl:value-of select="InformationUsager"/>
</InformationUsager>
</fiche>
</xsl:for-each>
</ficheInformation>
</xsl:template>
</xsl:stylesheet> |
XML à obtenir : SAPoutputModele.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="ISO-8859-1"?>
<ModeleExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ficheInformation id="Id_2">
<fiche id="Id_3">
<NomDuDocument>sap</NomDuDocument>
<TypeDuDocument>ModeleExport</TypeDuDocument>
<DateDeCreation>2006-01-30</DateDeCreation>
<InformationUsager></InformationUsager>
</fiche>
<fiche id="Id_4">
<NomDuDocument>sop</NomDuDocument>
<TypeDuDocument>ModeleExport</TypeDuDocument>
<DateDeCreation>2006-01-30</DateDeCreation>
<InformationUsager></InformationUsager>
</fiche>
</ficheInformation>
</ModeleExport> |