Вывод значения xsl: variable с xsl: value-of problem - PullRequest
7 голосов
/ 08 марта 2010

Я думаю, что у меня может быть неправильное понимание <xsl:variable\> и <xsl:value-of\>, поэтому, возможно, кто-то может исправить меня!

Я пытаюсь настроить некоторые жестко закодированные баннеры, чтобы немного чище, поэтому я подумал, что было бы неплохо создать <xsl:variable>, содержащий ссылку на баннер и код изображения, а затем использовать <xml:value-of> в различных местах баннер нужен. Например:

<!-- Global variable in my xslt file. There are a bunch of these... -->
<xsl:variable name="banner1">
    <a href="http://www.link.com/" title="Title" target="_blank">
        <img width="120" height="506" src="/images/banners/image.gif" alt="alt" />
    </a>
</xsl:variable>

<!-- Then when used: -->
<xsl:when test="blah'">
    <xsl:value-of select="$banner1"/>
</xsl:when>

Но это не дает ожидаемого результата. Путь к изображениям и т. Д. Действителен, но это просто ничего не выплевывает. Любой текст, добавленный до или после тега <a>, отображается правильно, но ничего между тегами <a>. Самим собой.

Что я неправильно понял о <xsl:variable> и как я мог бы сделать это лучше (кроме как делать это "правильно" и извлекать рекламу из базы данных и т. Д., Что я бы предпочел ...).

1 Ответ

7 голосов
/ 08 марта 2010

Значение, которое вы выбираете с помощью xsl: value-of, является строковым значением переменной.

Вы хотите <xsl:copy-of select='$banner1' /> скопировать фрагмент дерева результатов.

...