[XSLT] apply imports fait quoi
bonjour tout le monde je suis débutant en xml et j'ai réalisé un fichier xsl qui marche d'ailleur mais j'arrive pas à comprendre la syntaxe apply import et apply template :?:? en fait voici mon fichier 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 32 33 34 35 36 37 38 39 40 41 42
| <?xml version="1.0" encoding ="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>Liste des produits</title>
</head>
<body style="font-family:Arial; font-size:12pt;">
<i><h1 style="color:red">Liste des produits</h1></i>
<xsl:apply-imports/>
</body>
</html>
</xsl:template>
<xsl:template name="fonction" match="produit" >
<xsl:param name="n" select="inerte"/>
<xsl:param name="x" select="0"/> <!--x peut avoir 0 ou 1 pour ce cas-->
<xsl:choose>
<xsl:when test="$x=1"><!--si x =1 alors -->
<h2 STYLE="background-color:teal; color:white;"><xsl:text> nom produit : </xsl:text><i><xsl:value-of select="designation "/>
</i>
</h2> s
<h3 style="color:blue"><xsl:text> référence : </xsl:text><xsl:value-of select="ref"/>
</h3>
<h3><xsl:text>catégorie : </xsl:text><xsl:value-of select="categorie"></xsl:value-of></h3>
</xsl:when>
<xsl:when test="$x=0">
<!--xsl:for-each select="produit"-->
<xsl:apply-templates select="produit [niveau=$n]"/>
<h2 STYLE="background-color:teal; color:white;"><xsl:text> nom produit : </xsl:text><i><xsl:value-of select="designation "/>
</i>
</h2>
<h3><xsl:text> niveau de dangerosité : </xsl:text>
<xsl:value-of select="niveau"/>
</h3>
<h3 style="color:blue"><xsl:text> coordonées : </xsl:text><xsl:value-of select="emplacement/zone"></xsl:value-of></h3>
<!--/xsl:for-each-->
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> |
malgré c'est moi qu'il a fait mais je comprends pas comment il s'exécute!!!
en fait voilà mais remarques :
si je supprime <apply imports/> j'ai seulement Liste des produits !!!!:aie:
alors qu'il y a beaucoup de fichier XSL sur le net qui ne contiennent pas cette instruction !!
après
si je fait le xsl:for each !!! ça ne marche pas !!!!!!!! :aie:
et si je fait dans le <body> call:templates fonction ça ne donne ça n'a aucun effet en fait je trouve que XSL n'a pas vraiment les principes d'un langage procédurale comme C c'est à dire les procédures et la fonction main !!! c'est ce que j'ai cru au debut mais puis ce qu'il excute la template fonction même sans le call:template alors c'est différent
finalement merci beaucoup d'avance même si je trouve que je suis pas assez claire mais bon !!!merci d'avance !