Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2273 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XML/SXL]Probleme d'arborescence

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XML/SXL]Probleme d'arborescence

n°456732
TheTooN
Posté le 13-07-2003 à 23:26:18  profilanswer
 

bonsoir tlm,
voila, jé fé un fichier xml avec une certaine arborescence, ensuite jé fé le xsl qui va avec et le probleme est que mon navigateur n'affiche que le premier niveau de larborescence c'est à dire qu il affiche uniquement le texte : 'mon super titre' et pas les rubriques.
 
-----------------------------------------------------------
le xml :  
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml:stylesheet type="text/xsl" href="menu.xsl"?>
<document>
<chapitre>
 <titre>mon super titre</titre>
 <liens>
  <rubrique>ma premiere rubrique</rubrique>
  <rubrique>ma deuxieme rubrique</rubrique>
 </liens>
</chapitre>
</document>
 
-------------------------------------------------------------
le xsl :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
 <HTML>
  <BODY background="index/07.JPG" text="white">
  <xsl:for-each select="document/chapitre">
   <div><xsl:value-of select="titre"/></div>
   <xsl:for-each select="document/chapitre/liens">
   <div><xsl:value-of select="rubrique"/></div>
   </xsl:for-each>
  </xsl:for-each>
  </BODY>
 </HTML>
</xsl:template >
</xsl:stylesheet>
---------------------------------------------------
 
je suis sur ke l'erreur est bete et juste devant mon nez mais ca fait un bout de temps ke je cherche alors je fais appel à vos lumières.
Merci.

mood
Publicité
Posté le 13-07-2003 à 23:26:18  profilanswer
 

n°456887
avander
Posté le 14-07-2003 à 10:05:28  profilanswer
 

Le problème ce situe au niveau du for-each, il n'y a qu'un seul element liens donc tu passe qu'une seule fois dans la boucle.  
 
Essaye ceci:


  <xsl:for-each select="document/chapitre/liens/rubrique">  
  <div><xsl:value-of select="."/></div>  
  </xsl:for-each>  


 
A+


---------------
A thing of beauty is a joy forever (John Keats)
n°456897
TheTooN
Posté le 14-07-2003 à 10:26:32  profilanswer
 

cela ne fonctionne pas - chez moi du moins (ie6)
aurais tu une autre solution ?

n°456920
avander
Posté le 14-07-2003 à 11:17:48  profilanswer
 

Je vais regarder... mais je vois que tu utilise encore le namespace propriètaire de Microsoft dans la déclaration du stylesheet!!!  
 
Pour obliger ton parser à respecter les normes il te faut ceci:
 


<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">


 
C'est peut-être une explication...


---------------
A thing of beauty is a joy forever (John Keats)
n°456935
avander
Posté le 14-07-2003 à 11:30:51  profilanswer
 

Ta solution :


  <xsl:template match="/">
   <HTML>
    <BODY background="index/07.JPG" text="white">
    <xsl:for-each select="document/chapitre">
     <div><xsl:value-of select="titre"/></div>
     <xsl:for-each select="liens/rubrique">
     <div><xsl:value-of select="."/></div>
     </xsl:for-each>
    </xsl:for-each>
    </BODY>
   </HTML>
  </xsl:template >


N'oublies pas qu'avec for-each tu change de contexte, donc dans le deuxième il ne faut plus repartir de la racine!  
 
Un autre solution qui utilise la structure des données xml comme base de la transformation :  


  <xsl:template match="/">
   <HTML>
    <BODY background="index/07.JPG" text="white">
      <xsl:apply-templates />
    </BODY>
   </HTML>
  </xsl:template >
 
  <xsl:template match="titre|rubrique">
     <div><xsl:value-of select="."/></div>
  </xsl:template >


 
A++


---------------
A thing of beauty is a joy forever (John Keats)
n°456946
TheTooN
Posté le 14-07-2003 à 11:53:20  profilanswer
 

merci bcp à toi, je n avais pas compris que l'on ne repartait pas a zéro pour l'arborescence, je croyais qu'il fallait réécrire les arborescences completes.
Ca marche top nickel now.
Merci encore.
 
si ce n est pas trop abusé, et vu ke tu connais bien le xml, aurais tu des liens sur des tutoriaux pour faire les liens de type <a href> car je suis completement perdu dans ce que j ai trouvé (xlink ...)
 

n°456950
avander
Posté le 14-07-2003 à 12:01:47  profilanswer
 

Laisse tomber xlink pour l'instant c'est pas encore supporté dans les browsers actuels ( désolé si je me trompe :-)!  
 
Génère tes liens hypertext en HTML directement. Pour générer la valeur des attributs en général tu dois utiliser xsl:element et xsl:attribute
 
Sinon pour des tutoriels commence par regarder dans les 'Liens et Sujets utiles' que tu trouveras en haut de la page programmation.
 
Courage!  
 


---------------
A thing of beauty is a joy forever (John Keats)
n°456953
TheTooN
Posté le 14-07-2003 à 12:11:40  profilanswer
 

merci beaucoup pour ton aide !

n°456954
avander
Posté le 14-07-2003 à 12:14:48  profilanswer
 

mais de rieng!


---------------
A thing of beauty is a joy forever (John Keats)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XML/SXL]Probleme d'arborescence

 

Sujets relatifs
Problème de popup récurrent (tjdo)[PHP/MySQL]Problème d'UPDATE avec une variable contenue dans l'url
URGENT problème avec copy() de PHP[Mysql + MyODBC]Problème de lenteur !!
gestion des sessions avec XMLProbleme avec la propriété FormulaArray sous VBA (Excel)
[ASP] Extraire des données XML avec l'object XMLDOMProblème avec Winsock pour l'envoi de mail
[ASP] Problème de cache IE, parade pr forcer le dl d'un fichier sur leProblème de retour à la ligne
Plus de sujets relatifs à : [XML/SXL]Probleme d'arborescence


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR