probleme de lien en xml/xsl

probleme de lien en xml/xsl - XML/XSL - Programmation

Marsh Posté le 26-11-2007 à 05:12:46    

bonjour,
je voudrais créer un lien qui pointe vers une autre page,j'ai fait ça mais ça marche pas

Code :
  1. <xsl:template match="menu">
  2.  <li>
  3.   <xsl:element name="a">
  4.   <xsl:attribute name="href">
  5.    http://www.google.fr
  6.   <xsl:value-of select="menu"/>
  7.   </xsl:attribute>
  8.   </xsl:element>
  9.  </li>
  10. </xsl:template>

 
parexemple si je clique sur <xsl:value-of select="menu"/> ça pointe sur google.
svp help me


---------------
contre l'ignorance!!!!
Reply

Marsh Posté le 26-11-2007 à 05:12:46   

Reply

Marsh Posté le 26-11-2007 à 10:31:38    

t'aurais pas échangé les lignes 6 et 7 en recopiant ton exemple ?
 
Et qu'est-ce qui ne marche pas ? C'est normal que ton lien pointe vers google, non ?


---------------
TriScale innov
Reply

Marsh Posté le 26-11-2007 à 16:17:15    

donxml a écrit :

bonjour,
je voudrais créer un lien qui pointe vers une autre page,j'ai fait ça mais ça marche pas

Code :
  1. <xsl:template match="menu">
  2.  <li>
  3.   <xsl:element name="a">
  4.   <xsl:attribute name="href">
  5.    http://www.google.fr
  6.   <xsl:value-of select="menu"/>
  7.   </xsl:attribute>
  8.   </xsl:element>
  9.  </li>
  10. </xsl:template>

 
parexemple si je clique sur <xsl:value-of select="menu"/> ça pointe sur google.
svp help me


 
Alors à moins que dans ton document xml tu as un élément menu imbriqué dans un autre menu ça risque pas de marcher en ligne 6 puisque tu y es déjà... donc je mettrais:
 

Code :
  1. <xsl:value-of select="."/>

Reply

Marsh Posté le 26-11-2007 à 20:02:29    

voici le code xml

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="index.xsl"?>
  3. <index>
  4. <Menu>
  5.  <menus>Accueil</menus>
  6.  <menus>CV</menus>
  7.  <menus>Projet</menus>
  8.  <menus>Loisirs</menus>
  9. </Menu>
  10. <Texte>
  11.  <texte>Bienvenue dans mon univers</texte>
  12.  <texte>jespere que vous allez vous y plaire</texte>
  13.  <texte>bonne navigation!!!</texte>
  14. </Texte>
  15. </index>


et le xsl

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="html" version="html4.01" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" />
  4. <xsl:template match="index">
  5.  <html lang="fr" xml:lang="fr">
  6.       <head> <title>Bienvenue sur ma page</title></head>
  7.       <body>
  8.   <xsl:apply-templates />
  9.       </body>
  10.  </html>
  11. </xsl:template>
  12. <xsl:template match="Menu">
  13.  <ul>
  14.  <xsl:apply-templates />
  15.  </ul>
  16. </xsl:template>
  17. <xsl:template match="menu">
  18.  <li>
  19.   <xsl:element name="a">
  20.   <xsl:attribute name="href">
  21.    http://www.google.fr
  22.   <xsl:value-of select="menu"/>
  23.   </xsl:attribute>
  24.   </xsl:element>
  25.  </li>
  26. </xsl:template>
  27. <xsl:template match="Texte">
  28.  <xsl:apply-templates />
  29. </xsl:template>
  30. <xsl:template match="texte">
  31.  <div style="background-color:blue; color:white;">
  32.  <span style="font-weight:bold; color:white; padding:4px;">
  33.  <xsl:value-of select="."/>
  34.  </span>
  35.  </div>
  36. </xsl:template>
  37. </xsl:stylesheet>


et je voudrais que ça pointe sur googe

Reply

Marsh Posté le 27-11-2007 à 09:19:25    

Et comme ça ?

<xsl:template match="menu">
  <li>
    <xsl:element name="a">
      <xsl:attribute name="href">
        http://www.google.fr
      </xsl:attribute>
      <xsl:value-of select="." />  
    </xsl:element>
  </li>
</xsl:template>


---------------
TriScale innov
Reply

Marsh Posté le 27-11-2007 à 11:32:40    

le xml c'est sensible à la casse, alors ton deuxième template n'est même pas utilisé imho... le apply-templates dans  le template Menu va échouer...
 

Code :
  1. <xsl:template match="menus">
  2.   <li>
  3.     <xsl:element name="a">
  4.       <xsl:attribute name="href">
  5.         http://www.google.fr
  6.       </xsl:attribute>
  7.       <xsl:value-of select="." /> 
  8.     </xsl:element>
  9.   </li>
  10. </xsl:template>


 
Apres ton lien me semble bizarre dans le sens ou tu va coller le contenu d'un élément menus après le http://www.google.fr ...  :whistle:
 
Autre chose, c'est une mauvaise idée de mélanger les noms d'éléments avec et sans majuscule, y'en a qui sont rentré à l'asile pour moins que ça...


Message édité par avander le 27-11-2007 à 11:35:57
Reply

Marsh Posté le 27-11-2007 à 17:56:58    

Merci pour votre aide
j'aimerais savoir maintenant comment faire pour que chaque menu ait un lien sur une page
parexemple
-Accueil pour ma page d'accueil
-CV sur mon cv
-ainsi de suite
merci d'avance


---------------
contre l'ignorance!!!!
Reply

Marsh Posté le 28-11-2007 à 14:14:52    

Tu peux par exemple rajouter dans un attribut le nom de la page vers laquelle pointer :[spoiler][/spoiler]

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="index.xsl"?>
  3. <index>
  4. <Menu>
  5.  <menus link="accueil.xml">Accueil</menus>
  6.  <menus link="cv.xml">CV</menus>
  7.  <menus link="projet.xml">Projet</menus>
  8.  <menus link="loisirs.xml">Loisirs</menus>
  9. </Menu>
  10. <Texte>
  11.  <texte>Bienvenue dans mon univers</texte>
  12.  <texte>jespere que vous allez vous y plaire</texte>
  13.  <texte>bonne navigation!!!</texte>
  14. </Texte>
  15. </index>
Code :
  1. <xsl:template match="menus">
  2.   <li>
  3.     <xsl:element name="a">
  4.       <xsl:attribute name="href">
  5.         <xsl:value-of select="@link" />
  6.       </xsl:attribute>
  7.       <xsl:value-of select="." />
  8.     </xsl:element>
  9.   </li>
  10. </xsl:template>



---------------
TriScale innov
Reply

Marsh Posté le 28-11-2007 à 15:42:03    

ça marche nikel

Reply

Sujets relatifs:

Leave a Replay

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