Bonjour à tous,
J'ai encore un petit problème avec xsl. Le problème est le suivant j'ai créé une template nommé avec un param noeud, puis je fait tourner une boucle pour parcourir l'arboresence de répertoire et de fichier. Ensuite j'appel cette template nommé arborescence en passant comme paramètre le type de noeud que je souhaite lister (fichier ou répertoire). Mais XMLSpy bloque sur la condition <xsl:if test="self::$noeud">.......
alors que lorsque je mets <xsl:if test="self::fichier">....... ça fonctionne. Donc d'après ce que je comprends c'est qu'il n'accepte pas que j'utilise un axe modaux suivie d'un paramètre. Comment je peux faire ? Quel est mon erreur ?
Voici mes deux fichiers de tests :
ArboSpy.xml
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 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="ArboSpy.xslt"?> <racine> <repertoire nom="XML" date-modif="25-02-2001" heure-modif="14:12"> Ressource XML (exemples, outils, portail, spécifications...) <repertoire nom="exemples" date-modif="25-02-2001" heure-modif="14:12"> Exemple de fichier XML </repertoire> <fichier nom="seminaire.xml" taille="2" unite-taille="Ko" date-modif="25-02-2001" heure-modif="09:12"> Description XML du cours CXML </fichier> <fichier nom="ArboSpy.xml" taille="1" unite-taille="Ko" date-modif="25-02-2001" heure-modif="14:12"/> <repertoire nom="outils" date-modif="25-03-2001" heure-modif="18:22"/> </repertoire> <repertoire nom="Schema" date-modif="19-02-2001" heure-modif="19:09"> <repertoire nom="DTD" date-modif="25-02-2001" heure-modif="09:12"> Ressources sur les DTD <repertoire nom="outils" date-modif="25-02-2001" heure-modif="19:56"/> <fichier nom="XMLSpy35.exe" taille="8" unite-taille="Mo" date-modif="28-02-2001" heure-modif="12:12"> Version d'évaluation auto-installable </fichier> <fichier nom="cooktop_2_101.msi" taille="4" unite-taille="Mo" date-modif="25-02-2001" heure-modif="09:45"> CookTop (éditeur XML, XSLT, DTD) gratuit au fromat MS Installeur. </fichier> </repertoire> <repertoire nom="XML Schema" date-modif="25-02-2001" heure-modif="14:12"/> </repertoire> <fichier nom="ebXML-Specv1-0.pdf" taille="246" unite-taille="Ko" date-modif="25-02-2001" heure-modif="14:12"> Spécification ebXML à ranger dans un répertoire. </fichier> </racine>
ArboSpy.xslt
Donc est ce quelqu'un aurati une idée d'ou pourrait venir le problème, ça fait quelques heures que je tourne, ça me soulagerait vraiment.
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 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <!-- formatage de l'arboresence --> <xsl:template match="racine"> <html> <head> <title>Template-arbre-xslt</title> <!-- <link type="text/css" rel="stylesheet" href="ArboSpy.css"/> --> </head> <body> <div> <table> <!-- Appel de la template nommé arboresence --> <xsl:call-template name="arborescence"> <xsl:with-param name="noeud" select="repertoire"/> </xsl:call-template> </table> </div> </body> </html> </xsl:template> <xsl:template name="arborescence"> <xsl:param name="noeud"></xsl:param> <!-- L'arboresance du noeud --> <xsl:for-each select="descendant::*"> <xsl:if test="self::$noeud"> <tr> <td><xsl:value-of select="@nom"/></td> </tr> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template match="text()"></xsl:template> </xsl:stylesheet>
Merci d'avance pour l'aide que vous allez m'apporter.
dav79
Partager