XSLT ничего не знает о переменных в программе (VB.NET) , которая инициировала преобразование.
Существует два разных способа передачи значений переменных в преобразование:
Передать их как глобальные параметры для преобразования . Узнайте, как это сделать вместе с XslCompiledTransform.Transform()
:::: здесь .
Изменить исходный XML-документ (после загрузки он должен содержать значения переменных в определенных узлах.
Я рекомендую способ 1. выше.
UPDATE
Очевидно, вы используете вариант метода 2. выше. В этом случае вообще не стоит помещать значения переменных в одну строку.
Намного лучше, чем:
<link><![CDATA[/<% = countryVar %>/<% = langVar %>/products/index.aspx]]></link>
(и было бы просто обработать XSLT впоследствии, это:
<link>
<country><% = countryVar %></country>
<slash>/</slash>
<lang><% = langVar %></lang>
<tail-link>/products/index.aspx</tail-link>
<linkName>Whatever link text</linkName>
</link>
Тогда код XSLT, который обрабатывает это, будет просто :
<a href="{link}"><xsl:value-of select="linkName"/></a>
(это предполагает, что у вас есть <xsl:strip-space elements="*"/>
на глобальном уровне в вашей таблице стилей).
и значения переменных :
link/country
и
link/lang