bizare bizare, une sortie innatendue

bizare bizare, une sortie innatendue - XML/XSL - Programmation

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 ?

Reply

Marsh Posté le 23-04-2006 à 18:26:41   

Reply

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.  
 
 

Reply

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  
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed