Работа с XML в XSLT — различия между версиями
Mad grant (обсуждение | вклад) |
Mad grant (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | '''Актуально для версии 2.9''' | ||
+ | |||
Для того, чтобы в UMI.CMS использовать сторонние XML данные не обязательно их импортировать средствами модуля Обмен данными. Используя XSLT шаблонизатор можно обращаться к файлам содержащим XML напрямую. | Для того, чтобы в UMI.CMS использовать сторонние XML данные не обязательно их импортировать средствами модуля Обмен данными. Используя XSLT шаблонизатор можно обращаться к файлам содержащим XML напрямую. | ||
Например: | Например: |
Текущая версия на 11:30, 5 июня 2013
Актуально для версии 2.9
Для того, чтобы в UMI.CMS использовать сторонние XML данные не обязательно их импортировать средствами модуля Обмен данными. Используя XSLT шаблонизатор можно обращаться к файлам содержащим XML напрямую. Например: Некий сторонний сервис может выгружать данные в формате XML на наш сервер в определенную папку. Предположим что данные попадают в папку XML, а файл называется root.xml
Соответственно для обращения к этим данным в XSLT шаблоне мы можем написать следующее: В основном шаблоне делаем вызов файла
<xsl:variable name="domain" select="/result/@domain" />
<xsl:apply-templates select="document(concat('http://', $domain, '/xml/root.xml'))" mode="my" />
Предположим что XML данные представляют собой такую структуру:
<?xml version="1.0" encoding="utf-8"?>
<root>
<element name='first line'>one</element>
<element name='second line'>two</element>
<element name='third line'>three</element>
<element name='fourth line'>four</element>
</root>
То шаблон к ним может выглядеть так:
<xsl:template match="root" mode="my">
<xsl:apply-templates select="element" />
</xsl:template>
<xsl:template match="element">
<xsl:value-of select="@name" /><br />
</xsl:template>
Этот код будет возвращать четыре значения @name из нашего XML файла. Таким образом можно производить любые действия с данными полученными извне, и приобщать их к отображаемым данным.