[XSL] créer un lien à partir d'infos entrées en XML

créer un lien à partir d'infos entrées en XML [XSL] - Programmation

Marsh Posté le 11-04-2002 à 09:48:53    

voila le pb:
maintenant que j'arrive a chopper les attributs (merci kadreg),
 
<td width="50%"><center><b><a href="<xsl:value-of select="nom/@lien"/>"><xsl:value-of select="nom"/></a></b></center></td>
 
ce genre de trucs ne marche pas parce qu'on ne peut pas mettre une balise (XSL en l'occurence) entre les guillemets de href.
Alors il faudrait que je puisse stocker le value-of dans une variable (j'ai essayé de mettre la chaine dans un ENTITY mais ca veut p apparemment...). Y'a moyen de faire ca?

Reply

Marsh Posté le 11-04-2002 à 09:48:53   

Reply

Marsh Posté le 11-04-2002 à 09:53:33    

ca a l'air compliqué :sweat:

Reply

Marsh Posté le 11-04-2002 à 09:58:58    

Me revoila :)
 
Pour ca genre de cas, c'est à dire une imbrication de tags XML rendant le fichier xsl invalide, il y a une seconde écriture, appelées les expressions.
 
 
<td width="50%"><center><b><a href="{nom/@lien}">{nom/@lien}</a></b></center></td>
 
Grosso modo, l'écriture  

Code :
  1. {expression}


 est équivalente à  

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


 
Pour mr_mat, non, c'est pas compliqué, mais la logique derrière XPath et XSL est totalement différente de ce que l'on a l'habitude de voir ailleurs. Les premiers pas sont pas simples.

 

[jfdsdjhfuetppo]--Message édité par kadreg--[/jfdsdjhfuetppo]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 11-04-2002 à 10:04:12    

kadreg a écrit a écrit :

Pour mr_mat, non, c'est pas compliqué, mais la logique derrière XPath et XSL est totalement différente de ce que l'on a l'habitude de voir ailleurs. Les premiers pas sont pas simples.  



j'essairai un jour si j'ai mle temps :)
pr l'instant je me bat avec des servlet c'est bien aussi !

Reply

Marsh Posté le 11-04-2002 à 10:05:26    

dans ta xsl, mets des { } pour encapsuler le xsl qd tu ecris tu html....je la refais en plus clair et avec exemples ...
 
si tu as une variable xsl var  
 
tu fais :
 
<a href="{$var}">lien</a>

Reply

Marsh Posté le 11-04-2002 à 10:09:19    

he ben... merci encore a kadreg et aussi alien_nan mais ya un pb, le lien quand je passe sur le curseur c'est file///racine/{nom/@lien} au lieu de la valeur de lien... et pareil si je mets un $.
Il doit me manquer une toute petite astuce?

Reply

Marsh Posté le 11-04-2002 à 10:20:39    

Tu peux montrer le <xsl:template> qui contient ton action ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 11-04-2002 à 10:21:53    

c normal que ca ne marche pas si c un lien vers un fichier
 
supposons que sur ton serveur localhost tu aies un fichier dans temp et que tu veux fair un lien dessus
 
tu dois avoir :
<a href="http://localhost/temp/{$var}">lien</a>  
 
et var contient le nom de ton fichier

Reply

Marsh Posté le 11-04-2002 à 10:25:44    

alien_nan: ben nan c pas un fichier c une adresse entiere..
 
kadreg: voila
 
<xsl:template match="/">
 <html>
  <head>
      <title>Critères d'affichage des bordereaux</title>
  </head>
  <body bgcolor="#CCCCFF">
   <p/>
   <p/>
   <xsl:for-each select="/recherche/clients">
    <center><table border="0" bgcolor="#AAAAFF" width="50%">
     <xsl:for-each select="client">
      <tr>
       <td width="50%"><center><xsl:value-of select="prenom"/></center></td>
       <td width="50%"><center><b><a href="{@lien}">{nom}</a></b></center></td>
      </tr>
     </xsl:for-each>
     </table></center>
   </xsl:for-each>
  </body>
 </html>
</xsl:template>
 
 
Comme tu le vois j'ai aussi remplacé le ><xsl:value-of select="nom"/> par {nom} et ca marche pas non plus (ca affiche "{nom}"...). Ya pas un truc pour activer les accolades, chépa? :)

Reply

Marsh Posté le 11-04-2002 à 10:30:02    

essaies plutot :
 
<td width="50%"><center><b><a href="{nom@lien}"><xsl:value-of select="nom"/></a></b></center></td>

Reply

Marsh Posté le 11-04-2002 à 10:30:02   

Reply

Marsh Posté le 11-04-2002 à 10:34:07    

extrait du code XML
<clients>
....
<client lien="www.sports.com">
   <prenom>Paul</prenom>
   <nom>Machin</nom>
</client>
....
</clients>
 
j'ai mis les liens dans client pour + de clarté maintenant, c pour ca que je mets {@lien} au lieu de {nom/@lien}. Mais quand meme, de toutes facons {nom} devrait marcher??

Reply

Marsh Posté le 11-04-2002 à 10:38:52    

<xsl:for-each select="client">  
<xsl:variable name=lien select="@lien"/>
     <tr>  
      <td width="50%">
<center><xsl:value-of select="prenom"/></center></td>  
      <td width="50%"><center><b><a href="http://{$lien}"><xsl:value-of select="nom"/>
</center></td>  
     </tr>

Reply

Marsh Posté le 11-04-2002 à 10:46:50    

XML error:
Le mot clé xsl:variable ne doit pas être utilisé ici.  
 
bin porkoaaa?
(j'ai bien corrigé name="lien" )

Reply

Marsh Posté le 11-04-2002 à 10:51:38    

une autre :  
 
<xsl:for-each select="client">  
    <tr>  
     <td width="50%">
<center><xsl:value-of select="prenom"/></center></td>  
     <td width="50%"><center><b><a href="http://{../@lien}"><xsl:value-of select="nom"/>
</center></td>  
    </tr>  
<xsl:for-each/>

Reply

Marsh Posté le 11-04-2002 à 11:02:02    

alors, pour la variable ca marche pas pasken fait j'ai plusieurs clients, et comme on peut pas modifier la valeur d'une variable ca merde.
 
et pour le dernier essai, ben en fait j'ai toujours le probleme des accolades qui sont pas interpretees... il me met vraiment "http://{../@lien}" comme adresse ce con ;)

Reply

Marsh Posté le 11-04-2002 à 11:04:19    

lol

Reply

Marsh Posté le 11-04-2002 à 11:05:59    

Tu utilise quoi comme parseur XSLT ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 11-04-2002 à 11:07:12    

euh ben celui de IE5... faudrait que j'aille vers IE6?

Reply

Marsh Posté le 11-04-2002 à 11:11:36    

Goueg a écrit a écrit :

euh ben celui de IE5... faudrait que j'aille vers IE6?  



YAISS

Reply

Marsh Posté le 11-04-2002 à 11:14:26    

sinon ton stage ca se passe bien c cool ?

Reply

Marsh Posté le 11-04-2002 à 11:14:32    

ca aurait été emmerdant de demander ca a tous les clients de l'entreprise si j'avais eu besoin de ca...
heureusement (il y a findus! lol) ya bon!! :o)))
 
<td width="50%"><center><b><a>
<xsl:attribute name="HREF"><xsl:value-of select="@lien"/>
</xsl:attribute>
<xsl:value-of select="nom"/></a></b></center></td>
 
avec xsl attribute ca marche... YIPEEEEE :)
encore merci merci kadreg et alien_nan (euh pas mrmat hein? lol)

Reply

Marsh Posté le 11-04-2002 à 11:15:49    

mr_mat a écrit a écrit :

sinon ton stage ca se passe bien c cool ?  




 
ben comme tu vois là c initiation a XML, donc de l'apprentissage... pi fodra que j'etudie la BD ossi, et ke je bosse en commun avec les filles. Ca peut aller koi :)

Reply

Marsh Posté le 11-04-2002 à 11:17:43    

Goueg a écrit a écrit :

 
 
ben comme tu vois là c initiation a XML, donc de l'apprentissage... pi fodra que j'etudie la BD ossi, et ke je bosse en commun avec les filles. Ca peut aller koi :)  




 
 
elles sont comment les filles ?? foto ?? :D :D

Reply

Marsh Posté le 11-04-2002 à 11:22:33    

Goueg a écrit a écrit :

 
ben comme tu vois là c initiation a XML, donc de l'apprentissage...



 
A ce que je vois, je suis pas le seul en formation XML :D


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 11-04-2002 à 11:26:22    

mrmat >> pas de photo, c ke pour moi! ;)
kadreg >> hé oui, mais apparemment t'as paris de l'avance... j'ai lu mes 1eres lignes avant-hier, et bientot je vais devoir gérer les impressions des pages (ca ca va etre cho! :'|)

Reply

Marsh Posté le 11-04-2002 à 18:03:29    

viiz a écrit a écrit :

 
 
C'est qui qui vous donne la formation XML ?  




 
C'est fait en interne (la boite a une division formation)


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 14-04-2002 à 17:24:02    

ben moi je suis en stage en fait et je me forme avec... ben internet et un bouquin.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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