| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > Передача нескольких параметров из apply-templates |
| Автор: Karabas 21.7.2006, 15:26 | ||||||
| Может кто сталкивался ? Есть template для обработки тега, допустим, вставка рисунка. Он имеет несколько входных параметров и обрабатывает теги в .xml файле.
А теперь я хочу добавить рисунки непосредственно в .xsl шаблон, но они должны иметь несколько параметров. Насколько я нашел, можно передавать доп аргумент аттрибутом mode:
Но это не позволяет передать несколько аргументов, как хотелось бы. В идеале холелось бы просто добавлять в XSL файл что-то вроде
и в окончательном html файле видеть рисунок, оформленный в соответствии с template "Pimage", как я написал выше. Иначе приходится вписывать каждый рисунок отдельно, что сильно загромождает код.. |
| Автор: Bikutoru 27.7.2006, 09:20 | ||||||||||
XML такой
С помощью такого XSLT
преобразуется в это:
Если же все-таки нужно передавать в шаблон значения, то это можно делать с помощью xsl:with-param Пример (особого смысла не несет, просто демонстрация)
Результат преобразования самого того же XML-файла такой:
Добавлено @ 09:24 Значение xsl:param следующее: если передается xsl:with-param с таким же именем, то взять его значение, если нет, то взять свое значение... |
| Автор: Karabas 27.7.2006, 13:10 | ||
| Да, примерно так я и начал делать.. от безвыходности: писать теги картинок в отдельный xml файл и вызывать их из xsl. И вы меня утвердили в мысли, что вызов картинки обязан быть извне: вставка рисунка должна быть по сигналу из внешнего (.xml) файла. Я думал есть какая-то функция, вроде <xsl:use-template name="photo" /> с нужным набором параметров. Тогда я бы мог вставлять картинки, указанные в xml файле для контента, и независимо вставлять картинки, используемые в xsl файле для общего дизайна, при помощи единого темплейта а-ля
Отдельное спасибо за пояснение и способ применения xsl:with-param, я не дочитал до этого места в спецификации, теперь буду пользоваться. :-) |
| Автор: Exception 27.7.2006, 22:40 | ||
Если тебе надо, чтобы каждая конструкция photo заменялась на, например, img, просто поставь //:
|
| Автор: Karabas 28.7.2006, 10:04 | ||
| Есть файл .xml, база данных. Там названия файлов, описания, служебная информация и т.п. Каждой записи присвоен уникальный ID, например id="example1". Все соответствующие tempelates в xsl файле (xml+xsl->html) сделаны и корректно работают. После этого, добавление картинки к тексту в .xml файле с контеном сводится просто к тегу <photo ref="example1"/>. А теперь последний штрих: хочу добавить картинку напрямик в html, без вызова ее из xml с контентом. Ну, например, логотип. Хотелось максимально просто, тем более уже есть отлаженный <xsl:template match="photo">, вызывать этот photo прямо из xsl:
Но, как я понял, нет способов оперировать в xsl файле подобным образом. |