bizare bizare, une sortie innatendue - XML/XSL - Programmation
Marsh Posté le 24-04-2006 à 10:00:16
Le moteur XSLT offre un nombre de 'services' par défaut notemment ( de mémoire fatiguée) il va te balancer le contenu ( le texte) des balises si tu lui donne pas assez d'info sur la transformation... et c'est ce que tu retrouve dans ton résultat. Les deux for-each ne font pas grand chose a mon avis.
Ce serait mieux de nous donner un exemple de l'output que tu voudrais obtenir.
Marsh Posté le 24-04-2006 à 12:26:22
en effet tu etais sur la bonne piste, jai changé <xsl:apply-templates/> en <xsl:apply-templates select="dir"/> et je n'ai plus ses sorties bizarres
le fichier que je voulais obtenir est le html
En fait à partir du fichier xml ( sortie de metadata miner catalog) qui contient une partie de l'arborescence de mon disque dur, je crée un menu vertical sur une page html, ce qui me permet d'accéder trés vite a tous mes fichier et ensuite de fournir ce type de page html pour mes élèves avec l'accés rapide a certains document (script en applet java dispo pour qui le demande)
Merci
Marsh Posté le 23-04-2006 à 18:26:41
a partir du xml suivant :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Created with Catalogue version 4.2.3 [Soft Experience] -->
<involume name="DATA2" filesystem="NTFS" dategeneration = "23 Avril 2006 18:12">
<dir>
<id>1</id><name>dir</name><fullname>l:\Temp\Temp\test\dir</fullname>
<dir>
<id>2</id><name>dir1</name><fullname>l:\Temp\Temp\test\dir\dir1</fullname>
<file>
<id>3</id>
<extension>xml</extension>
<name>Catalogue.xml</name>
<fullname>l:\Temp\Temp\test\dir\dir1\Catalogue.xml</fullname>
</file>
</dir>
<dir>
<id>4</id><name>dir2</name><fullname>l:\Temp\Temp\test\dir\dir2</fullname>
<dir>
<id>5</id><name>dir21</name><fullname>l:\Temp\Temp\test\dir\dir2\dir21</fullname>
<file>
<id>6</id>
<extension>xsl</extension>
<name>liste imbriquée.xsl</name>
<fullname>l:\Temp\Temp\test\dir\dir2\dir21\liste%20imbriquée.xsl</fullname>
</file>
<file>
<id>7</id>
<extension>xsl</extension>
<name>liste simple.xsl</name>
<fullname>l:\Temp\Temp\test\dir\dir2\dir21\liste%20simple.xsl</fullname>
</file>
</dir>
<dir>
<id>8</id><name>dir22</name><fullname>l:\Temp\Temp\test\dir\dir2\dir22</fullname>
<file>
<id>9</id>
<extension>htm</extension>
<name>accueil.htm</name>
<fullname>l:\Temp\Temp\test\dir\dir2\dir22\accueil.htm</fullname>
<html><title>Document sans nom</title></html>
</file>
<file>
<id>10</id>
<extension>htm</extension>
<name>index.htm</name>
<fullname>l:\Temp\Temp\test\dir\dir2\dir22\index.htm</fullname>
<html><title>Document sans nom</title></html>
</file>
<file>
<id>11</id>
<extension>htm</extension>
<name>menu.htm</name>
<fullname>l:\Temp\Temp\test\dir\dir2\dir22\menu.htm</fullname>
<html><title>Test de menu dynamique</title></html>
</file>
<file>
<id>12</id>
<extension>htm</extension>
<name>titre.htm</name>
<fullname>l:\Temp\Temp\test\dir\dir2\dir22\titre.htm</fullname>
<html><title>Document sans nom</title></html>
</file>
</dir>
</dir>
<dir>
<id>13</id><name>dir3</name><fullname>l:\Temp\Temp\test\dir\dir3</fullname>
<file>
<id>14</id>
<extension>class</extension>
<name>Outline.class</name>
<fullname>l:\Temp\Temp\test\dir\dir3\Outline.class</fullname>
</file>
</dir>
</dir>
</involume>
et du xsl suivant :
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration ="yes" encoding="ISO-8859-1"/>
<xsl:template match="dir">
<LI>menu
<UL>
<xsl:for-each select="file">
<LI>
</LI>
</xsl:for-each>
<xsl:if test="dir"><xsl:apply-templates /></xsl:if>
</UL>
</LI>
</xsl:template>
</xsl:stylesheet>
J'ai le fichier html suivant :
<LI>menu
<UL>1dirl:\Temp\Temp\test\dir<LI>menu
<UL>
<LI></LI>
</UL>
</LI>
<LI>menu
<UL>4dir2l:\Temp\Temp\test\dir\dir2<LI>menu
<UL>
<LI></LI>
<LI></LI>
</UL>
</LI>
<LI>menu
<UL>
<LI></LI>
<LI></LI>
<LI></LI>
<LI></LI>
</UL>
</LI>
</UL>
</LI>
<LI>menu
<UL>
<LI></LI>
</UL>
</LI>
</UL>
</LI>
ce qui m'étonne ce sont les lignes du type : 1dirl:\Temp\Temp\test\dir ; 4dir2l:\Temp\Temp\test\dir\dir2
je ne m'attend pas a les voir dans ma sortie !
quelqu'un peut m'eclairer ?