Использование переменных в xslt - PullRequest
1 голос
/ 10 сентября 2010

Я вставляю две переменные countryVar и langVar в узел в моем XML-документе.

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

Я использую узел ссылки в xslt следующим образом.

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

значение ссылки выводится точно так же, как и в документе xml.Есть ли способ получить две переменные vb.net countryVar и langVar для обработки и вывода значения?Значения хранятся в кеше и помещаются на страницу.

Спасибо

1 Ответ

0 голосов
/ 10 сентября 2010

XSLT ничего не знает о переменных в программе (VB.NET) , которая инициировала преобразование.

Существует два разных способа передачи значений переменных в преобразование:

  1. Передать их как глобальные параметры для преобразования . Узнайте, как это сделать вместе с XslCompiledTransform.Transform() :::: здесь .

  2. Изменить исходный 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...