2010-09-09 12 views
1

J'insère deux variables countryVar et langVar dans un noeud de mon document xml. J'utilise le nœud de liaison dans un tel xslt comme ceci. La valeur de lien imprime exactement comme dans le document xml. Existe-t-il un moyen d'obtenir les deux variables vb.net countryVar et langVar pour traiter et imprimer leur valeur? Les valeurs sont stockées dans le cache et sont tirées dans la page.Utilisation de variables dans xslt

Merci

+0

Bonne question (1). Voir ma réponse pour deux solutions différentes. –

Répondre

0

XSLT ne sait rien sur les variables du (VB.NET) programme qui a initié la transformation.

Il y a deux façons différentes pour transmettre des valeurs des variables à la transformation:

  1. les passer en tant que paramètres globaux à la transformation. En savoir plus comment le faire avec XslCompiledTransform.Transform() :::: here.

  2. Modifier le document XML source (après chargement, pour contenir les valeurs des variables dans certains noeuds

Je recommande la méthode 1 ci-dessus

MISE À JOUR..:

De toute évidence, vous utilisez une variante de la méthode 2. Dans ce cas, il n'est pas du tout judicieux de mettre les valeurs des La même chaîne

Beaucoup mieux que:

<link><![CDATA[/<% = countryVar %>/<% = langVar %>/products/index.aspx]]></link> 

(et il serait facile de traiter avec XSLT après, est:

<link> 
    <country><% = countryVar %></country> 
    <slash>/</slash> 
    <lang><% = langVar %></lang> 
    <tail-link>/products/index.aspx</tail-link> 
    <linkName>Whatever link text</linkName> 
</link> 

Ensuite, le code XSLT qui traite ce sera juste:

<a href="{link}"><xsl:value-of select="linkName"/></a> 

(ceci suppose que vous avez <xsl:strip-space elements="*"/> au niveau global dans votre feuille de style).

et les valeurs des variables sont:

link/country 

et

link/lang 
+0

@Dimitre: Votre réponse est exacte. Mais je pense que les valeurs des variables sont maintenant contenues dans l'entrée. L'OP pourrait analyser l'élément 'link' ... –

+0

@Alejandro: Placer les valeurs des variables dans une chaîne n'a pas de sens! Donc, je lui donne un bon conseil. De plus, il n'y a pas d'élément 'linkName' dans le document XML fourni. –

+0

@Alejandro: Il dit qu'il n'obtient pas les valeurs mais il obtient ce qu'il nous montre ** littéralement **. Donc, ce n'est pas une question XSLT du tout, mais une question ASP! –

Questions connexes