créer un lien à partir d'infos entrées en XML [XSL] - Programmation
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 :
|
est équivalente à
Code :
|
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]
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 !
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>
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?
Marsh Posté le 11-04-2002 à 10:20:39
Tu peux montrer le <xsl:template> qui contient ton action ?
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
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?
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>
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??
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>
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" )
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/>
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
Marsh Posté le 11-04-2002 à 11:05:59
Tu utilise quoi comme parseur XSLT ?
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
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!! )))
<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)
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
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 ??
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
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! :'|)
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)
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.
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?