Rechercher : dans
Par :

[XSL]: acces au variable

Dernière réponse le 19 avr 2005 à 17:55:50 Fra, le 19 avr 2005 à 14:25:08 
 Signaler ce message aux modérateurs

Bonjour,

je debutte en XML et j'ai du mal avec les acces aux variable.
je voudrais mette un lien dans une variable que je desir recupérer en plusieurs endroit de mon script.

Mais visiblement la variable n'est pas accessible.

<xsl:template match="/">
 <xsl:variable name="chanelLink" select="rss/channel/link"/>
 <html>
	<xsl:call-template name="data"></xsl:call-template>
 </html>
</xsl:template>

<xsl:template name="data">
 <a href="{$chanelLink}"><xsl:value-of select="rss/channel/title"/></a>
</xsl:template>


Erreur :
"Impossible de résoudre une référence à une variable ou un paramètre « chanelLink ». La variable ou le paramètre ne sont peut être pas définis ou sont absents de la portée. "

Merci

Meilleures réponses pour « [XSL]: acces au variable » dans :
Accélérer le démarrage du PC VoirVotre démarrage est lent ? Voici quelques astuces qui vont vous permettre de gagner quelques secondes précieuses. Avec msconfig Avec bootvis Désactiver la date de dernier accès Supprimer le logo Windows au démarrage Quelques...
[BIOS] Accéder au setup du Bios VoirPour modifier les paramètres de la carte mère, le BIOS possède une interface, le setup du bios, à modifier avec beaucoup de prudence. Quelle est la touche qui donne accès au Setup ? Entrer dans le Setup Réinitialiser le mot de passe Plus...
Télécharger Download Accelerator Plus VoirDownload Accelerator Plus (DAP) est un logiciel qui sert à optimiser le temps de téléchargement des logiciels et autres documents sur Internet. Il agit tout simplement en découpant le logiciel que vous souhaitez télécharger en une multitude de petits...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Les pointeurs en langage C VoirDéfinition d'un pointeur Un pointeur est une variable contenant l'adresse d'une autre variable d'un type donné. La notion de pointeur fait souvent peur car il s'agit d'une technique de programmation très puissante, permettant de définir des...

1

teebo, le 19 avr 2005 à 16:41:56

Salut,
Je crois qu'il faut que tu définisse chanelLink en dehors du template match, quite à ne lui donner sa valeur qu'à ce moment là...

It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo

2

fras34, le 19 avr 2005 à 17:08:39

Ok, si je sort la variable du macth ça fontionne.

Mais en plus il faut que l'attibution de la variable soit conditionnel.

<xsl:choose>
	<xsl:when test="rss/channel/configs/categorie != 'all'">
		<xsl:variable name="chanelTitre" select="rss/channel/configs/categorie"/>
	</xsl:when>
	<xsl:otherwise>
		<xsl:variable name="chanelTitre" select="rss/channel/title"/>
	</xsl:otherwise>
<xsl:choose>

<xsl:template match="/">
 <html>
	<xsl:call-template name="data"></xsl:call-template>
 </html>
</xsl:template>

<xsl:template name="data">
 <a href="{$chanelLink}"><xsl:value-of select="rss/channel/title"/></a>
</xsl:template>


Et la ça genere une erreur.

Répondre à fras34

3

teebo, le 19 avr 2005 à 17:12:19

Un truc comme ça ne marcherait pas aussi bien?

<xsl:variable name="chanelLink"/>

<xsl:template match="/">
<xsl:variable name="chanelLink" select="rss/channel/link"/>
<html>
<xsl:call-template name="data"></xsl:call-template>
</html>
</xsl:template>

<xsl:template name="data">
<a href="{$chanelLink}"><xsl:value-of select="rss/channel/title"/></a>
</xsl:template>


It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo

4

fras34, le 19 avr 2005 à 17:25:04

La variable du lien fonctionne, merci.
Mais pas celle du titre. Elle ne prend pas en compte que categorie != 'all'

<!-- le lien : ok -->
<xsl:variable name="chanelLink" select="rss/channel/link"/>
<!-- variable du  titre -->
<xsl:variable name="chanelTitre"/>
<xsl:choose>
	<xsl:when test="rss/channel/configs/categorie != 'all' ">
		<xsl:variable name="chanelTitre" select="rss/channel/configs/categorie"/>
	</xsl:when>
	<xsl:otherwise>
		<xsl:variable name="chanelTitre" select="rss/channel/title"/>
	</xsl:otherwise>
</xsl:choose>
<!-- Masque -->
<xsl:template match="/">
<html>
<head>
	<title><xsl:copy-of select="$chanelTitre"/></title>
</head>
<body>
 <xsl:call-template name="data"></xsl:call-template> 
</body>
 </html>
</xsl:template>

<xsl:template name="data">
<a href="{$chanelLink}"><xsl:value-of select="rss/channel/title"/></a>
</xsl:template> 

Répondre à fras34

5

teebo, le 19 avr 2005 à 17:34:07

Au fait pourquoi tu veux utiliser une variable?
It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo

6

teebo, le 19 avr 2005 à 17:40:04
  • +2

Bon sans garantie mais un truc du genre ne marcherait pas?


<xsl:variable name="chanelTitre">
<xsl:choose>
	 <xsl:when test="rss/channel/configs/categorie != 'all' ">
                 rss/channel/configs/categorie
         </xsl:when>
	 <xsl:otherwise>
                 rss/channel/title
         </xsl:otherwise>
</xsl:choose>	
</xsl:variable>


Je me souviens que je m'étais battu avec ce genre de choses aussi...

It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo

7

 fras34, le 19 avr 2005 à 17:55:50

YESSS

Merci je galère la dessus depuis ce matin

Trop cool

Répondre à fras34