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="UTF-8"?>
<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="yes"/>
<xsl:key name="groupe1" match="record" use="Axe1"/>
<xsl:key name="groupe2" match="record" use="concat(Axe1,'|',Axe2)"/>
<xsl:key name="groupe3" match="record" use="concat(Axe1,'|',Axe2,'|',Axe3)"/>
<xsl:template match="test">
<resultat>
<xsl:for-each select="record[generate-id(.)=generate-id(key('groupe1', Axe1)[1])]">
<xsl:variable name="a1" select="Axe1"/>
<Dossier titre="{$a1}">
<xsl:for-each select="/test/record[generate-id(.) = generate-id(key('groupe2', concat($a1,'|',Axe2))[1])]">
<xsl:variable name="a2" select="Axe2"/>
<SDossier titre="{$a2}">
<xsl:for-each select="/test/record[generate-id(.) = generate-id(key('groupe3', concat($a1,'|',$a2,'|',Axe3))[1])]">
<xsl:variable name="a3" select="Axe3"/>
<Doc titre="{$a3}">
<xsl:for-each select="key('groupe3', concat($a1,'|',$a2,'|',$a3))">
<File titre="{TitreFichier}">
<xsl:copy-of select="Info"/>
</File>
</xsl:for-each>
</Doc>
</xsl:for-each>
</SDossier>
</xsl:for-each>
</Dossier>
</xsl:for-each>
</resultat>
</xsl:template>
</xsl:stylesheet> |
Partager