Работа с XML в XSLT

Материал из Umicms
Версия от 11:30, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 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 файла. Таким образом можно производить любые действия с данными полученными извне, и приобщать их к отображаемым данным.