VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Xslt faire un lien html

smellems 116Messages postés 5 juillet 2005Date d'inscription - Dernière réponse le 29 juil. 2010 à 09:56
Bonjour à tous,
j'ai un problème...

j'utilise un xls pour formater mon fichier xml.

dans le fichier xml il y a des adresse url et je veux créer des liens et ça ne fonctionne pas.

<xsl:for-each select="TousLesSites/Site">
<xsl:sort select="artist"/>
<tr>
<td align="left"><a href="<xsl:value-of select="URL"/>" target="_blank"><xsl:value-of select="URL"/></a>
</tr>
</xsl:for-each>

je veux donc écrirer l'url et créer le lien... mais j'ai des erreurs

not well-formed...

j'ai essayé plusieur chiose
<a href="<xsl:value-of select="URL"/>" target="_blank">...</a>
<a href=<xsl:value-of select="URL"/> target="_blank">...</a>
et même
<a href="javascript:GoSite("<xsl:value-of select="URL"/>")" target="_blank">...</a>
et
<a href="javascript:GoSite(<xsl:value-of select="URL"/>)" target="_blank">...</a>

mais le script ne reçoit pas l'argument...

merci pour vos conseils...
Lire la suite 

Xslt faire un lien html »

Suggestions
6 réponses
Réponse
+7
moins plus
Salut,
Pourquoi t'utilises pas xsl:element avec xsl:attribute pour créer ton élément
a avec un attribut href, soit à la place de <a href="...">...</a>
<xsl:element name="a">
  <xsl:attribute name="href"><xsl:value-of select="URL"/></xsl:attribute>
  <xsl:value-of select="URL"/>
</xsl:element>

A+, crabs
Ajouter un commentaire
Réponse
+2
moins plus
en écrivant ça:
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="URL"/></xsl:attribute>
<xsl:value-of select="URL"/>
</xsl:element>
supposant que <xsl:value-of select="URL"/>= www.google.fr

j'aurais dans la source de ma page finale où je voudrai afficher les résultats quelqchose comme ça:

A%20%20www.google.frA%20%20
ainsi le lien ne fonctionne pas.
c'est comme si l'interprêteur xsl ajoute des espaces au début et à la fin de l'url.
et je l'ai testé en ajoutant un hh avant et aprés la balise comme ça:

<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="URL"/></xsl:attribute>
hh<xsl:value-of select="URL"/>hh
</xsl:element>
et ça me donnait effectivement
hh www.google.fr hh

alors quelqu'un a une idée?????
Dryman - 24 nov. 2008 à 15:54
Bonjour, je sais que j'ai un an de retard pour une quelconque réponse, mais si ça peut aider quelqu'un et lui éviter de tourner en rond comme je viens de le faire.
Voici une solution marche pour générer des liens dynamiques à partir d'un xsl.

<a>
<xsl:attribute name="href"><xsl:value-of select="VOTRE LIEN"></xsl:attribute>
<xsl:value-of select="LE NOM QUE VOUS VOULEZ QU'IL APPARAISSE EN FORME DE LIEN"/>
</a>

Voila.

Bon courage à toutes et à tous.
moc - 30 nov. 2009 à 20:16
Bonjour à tous
j'ai moi aussi encore 1 an de retard mais je viens de tomber sur le forum et la manière la plus simple de faire un lien html en xml avec xslt est tout simplement d'écrire dans le fichier xsl:
<a href="{nom_de_la_balise_du_lien_en_xml}"><xsl:value-of select="nom_de_la_balise_du_lien_en_xml"/></a>

ex:
fichier xml:
<exemple>
<lien>www.google.com</lien>
</exemple>

fichier xsl:

<xsl:template match="exemple">
<a href="{lien}"><xsl:value-of select="lien"/></a>
</xsl:template>

Pour faire un lien vers une ancre:

rajouter # devant {lien} => <a href="#{ID_ancre}">...</a>

et ne pas oublier de rajouter dans le fichier xsl une balise avec id="ID_ancre"

ex:
fichier xml:

<exemple>
<lien_ancre>TITRE1</lien_ancre>
......
......
......
<ancre>TITRE1</ancre>
</exemple>

fichier xsl:

<xsl:template match="exemple">
<a href="#{lien_ancre}"><xsl:value-of select="lien_ancre"/></a>
....
....
....
<h1 id=TITRE1><xsl:value-of select="ancre"/></h1>
</xsl:template>

attention: lien_ancre et ancre doivent avoir le même texte dans leur balise: lien_ancre= TITRE1
ancre= TITRE1
voila j'espere que ca pourra vous etre utile
nobull - 29 juil. 2010 à 09:56
Très bien pour la réponse de Dryman
mais il y a une petite erreur
<a>
<xsl:attribute name="href"><xsl:value-of select="VOTRE LIEN" /></xsl:attribute>
<xsl:value-of select="LE NOM QUE VOUS VOULEZ QU'IL APPARAISSE EN FORME DE LIEN"/>
</a>

au lieu de
<a>
<xsl:attribute name="href"><xsl:value-of select="VOTRE LIEN"></xsl:attribute>
<xsl:value-of select="LE NOM QUE VOUS VOULEZ QU'IL APPARAISSE EN FORME DE LIEN"/>
</a>

cad le / après
<xsl:value-of select="VOTRE LIEN"

et on peut écrire

<a>
<xsl:attribute name="href"><xsl:value-of select="VOTRE LIEN" /></xsl:attribute>
cliquez ici
</a>

merci
Ajouter un commentaire
Réponse
+0
moins plus
c'est ce que j'ai trouvé, mais Merci!!!!
Ajouter un commentaire
Ce document intitulé « xslt faire un lien html » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?