Вывод значений элементов или атрибутов (xslt) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Задача:''' Вывести значения атрибутов или элементов в шаблоне (это могут быть значения лю…»)
(нет различий)

Версия 07:15, 6 сентября 2011

Задача: Вывести значения атрибутов или элементов в шаблоне (это могут быть значения любых полей нашей страницы).

Решение: познакомимся с инструкцией XSLT <xsl:value-of>.

1. Вывод значений элементов или атрибутов в шаблоне осуществляется при помощи инструкции <xsl:value-of select="путь_до_элемента">. UMI.CMS предоставляет возможность просмотреть содержимое любой существующей страницы в системе в виде XML непосредственно в окне браузера. Для того, чтобы вывести страницу в виде XML следует набрать в адресной строке httр://адрес_сайта/upage/id_страницы.


2. Итак мы хотим вывести следующее: title страницы - получить его можно указав /result/@title ; заголовок страницы - получить его можно, указав /result/@header ; контент - получить его можно, указав /result/page/properties/group/property[@name='content']/value

В xsl шаблоне дизайна для вывода у нас соответственно будут записи вида:

   <xsl:value-of select="/result/@title">
   <xsl:value-of select="/result/@header">
   <xsl:value-of select="/result/page/properties/group/property[@name='content']/value">

3. Теперь на страницах сайта будут выводиться нужные нам значения. Для того, чтобы содержимое поля "контент" выводилось без экранирования тэгов, необходимо добавить еще один атрибут, записав инструкцию так:

<xsl:value-of select="/result/page/properties/group/property[@name='content']/value" disable-output-escaping="yes">

4. Фигурные скобки в атрибутах: {} Часто может возникнуть необходимость вывести какие-либо значения внутри атрибута тега, например:

<meta name="description" content="/">
<meta name="keywords" content="/">

В таком случае необходимо воспользоваться записью через фигурные скобки, указав таким же образом путь до элемента:

<meta name="description" content="{result/meta/description}">
<meta name="keywords" content="{result/meta/keywords}">