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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !!!!
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 !!!!!!!!
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 !