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 32 33 34 35 36 37 38
| <?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:variable name="A1" select="'A'"/>
<xsl:variable name="A2" select="'*'"/>
<xsl:variable name="A3" select="'*'"/>
<xsl:key name="clé" match="A" use="concat(B,';',C,';',D) "/>
<xsl:key name="clé1" match="A" use="concat('*;',C,';',D) "/>
<xsl:key name="clé2" match="A" use="concat(B,';*;',D) "/>
<xsl:key name="clé3" match="A" use="concat(B,';',C,';*') "/>
<xsl:key name="clé4" match="A" use="concat('*;*;',D) "/>
<xsl:key name="clé5" match="A" use="concat(B,';*;*') "/>
<xsl:key name="clé6" match="A" use="concat('*;',C,';*') "/>
<xsl:template match="/">
<html>
<body>
<xsl:choose>
<xsl:when test="concat($A1,';',$A2,';',$A3)='*;*;*'">
<xsl:apply-templates mode="R/A"></xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="key('clé',concat($A1,';',$A2,';',$A3))|key('clé1',concat($A1,';',$A2,';',$A3))|key('clé2',concat($A1,';',$A2,';',$A3))|key('clé3',concat($A1,';',$A2,';',$A3))|key('clé4',concat($A1,';',$A2,';',$A3))|key('clé5',concat($A1,';',$A2,';',$A3))|key('clé6',concat($A1,';',$A2,';',$A3))"/>
</xsl:otherwise>
</xsl:choose>
</body>
</html>
</xsl:template>
<xsl:template match="A">
<xsl:value-of select="B"/>;<xsl:value-of select="C"/>;<xsl:value-of select="D"/>
<br/>
</xsl:template>
</xsl:stylesheet> |
Partager