ПреобразовательXml
Стд::Xml::Преобразование::ПреобразовательXml
Доступность: Сервер
Объект для преобразования документа XML по таблице стилей XSLT.
Сравнение ссылочное
Иерархия типа
Базовые типы: Объект
Примеры
Документ XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<row status="ok" value="1"/>
<row status="ok" value="2"/>
<row status="error" value="3"/>
<row status="ok" value="4"/>
</root>
Таблица стилей XSLT с xsl:message
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml"/>
<xsl:param name="param"/>
<xsl:template match="/root">
<rootTransformed>
<xsl:for-each select="row">
<xsl:choose>
<xsl:when test="@status = 'error'">
<!-- исполнение трансформации будет прервано -->
<xsl:message terminate="yes" select="concat('Критическая ошибка: ', $param, @value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:message select="concat('Успешно: ', $param, @value)"/>
</xsl:otherwise>
</xsl:choose>
<row>
<value>
<xsl:value-of select="@value"/>
</value>
</row>
</xsl:for-each>
</rootTransformed>
</xsl:template>
</xsl:stylesheet>
Вызов преобразования XML в XBSL
метод ПреобразоватьДокументXml(ДокументXmlДо: Файл, ДокументXmlПосле: Файл, ТаблицаСтилей: Файл)
// в таблице стилей используется параметр
Параметры = {"param": "value"}
// обработчик сообщения из таблицы стилей, может быть использован для отладки, записи в ЖС или другого действия
ОбработчикСообщенияXslt = метод(Сообщение: СообщениеXslt) ->
если Сообщение.СПрерыванием
// запись в ЖС с видом события Ошибка и важностью Максимальная
// Значение сообщения можно получить через Сообщение.Содержимое.ВСтроку()
иначе
// запись в ЖС с видом события Информация и важностью Обычная
;
возврат
;
знч ПреобразовательXml = новый ПреобразовательXml(ТаблицаСтилей, Параметры, ОбработчикСообщенияXslt)
исп ПотокЧтения = ДокументXmlДо.ОткрытьПотокЧтения()
исп ПотокЗаписи = ДокументXmlПосле.ОткрытьПотокЗаписи()
ПреобразовательXml.Преобразовать(ПотокЧтения, ПотокЗаписи)
// В результате исполнения преобразования в ЖС будет 3 записи (2 - Информация, 1 - Ошибка),
// завершится выбросом ИсключениеПреобразованияXml, так как использовалось сообщение с прерыванием.
;
метод ПреобразоватьДокументXml(ДокументXmlДо: Файл, ДокументXmlПосле: Файл, ТаблицаСтилей1: Файл, ТаблицаСтилей2: Файл)
знч ПреобразовательXml1 = новый ПреобразовательXml(ТаблицаСтилей1)
исп ПотокЧтения = ДокументXmlДо.ОткрытьПотокЧтения()
знч УзлыПослеПреобразователяXml1 = ПреобразовательXml1.Преобразовать(ПотокЧтения)
// здесь можно выполнить дополнительные действия с узлами из ТаблицаСтилей1,
// например, прочитать промежуточные значения узлов
знч ПреобразовательXml2 = новый ПреобразовательXml(ТаблицаСтилей2)
исп ПотокЗаписи = ДокументXmlПосле.ОткрытьПотокЗаписи()
ПреобразовательXml2.Преобразовать(УзлыПослеПреобразователяXml1, ПотокЗаписи)
;
Конструкторы
ПреобразовательXml
Доступность: Сервер
ПреобразовательXml(
ТаблицаСтилей: Файл|ПотокЧтения,
Парам етры: ЧитаемоеСоответствие<Строка, Строка>? = Неопределено,
ОбработчикСообщенияXslt: ((СообщениеXslt)->ничто)? = Неопределено)
Конструктор преобразователя XML.
- ТаблицаСтилей - файл или поток чтения таблицы стилей XSLT
- Параметры - параметры для таблицы стилей XSLT. По умолчанию -
Undefined
- ОбработчикСообщенияXslt - обработчик сообщения, полученного при исполнении таблицы стилей XSLT через инструкцию xsl:message,
может быть использован для отладки и логирования. По умолчанию -
Undefined
Разрешение зависимостей таблицы стилей по пути в xsl:include или xsl:import таблицы стилей зависит от
переданного типа параметра ТаблицаСтилей
:
- Файл - относительный или абсолютный путь
- ПотокЧтения - только абсолютный путь
Абсолютный путь к файлу должен иметь префикс file:/// .
Также в качестве ссылки можно использовать URN ресурса проекта в формате urn:1c-element:resource:{полное имя проекта, разделитель "-"}:{путь ресурса в проекте}
.
Пример: urn:1c-element:resource:Dev-App-Основно й:папка1/папка2/таблицаСтилей.xslt
, где Dev - имя разработчика, App - имя проекта, Основной - имя подсистемы,
папка1/папка2/таблицаСтилей.xslt - путь к файлу таблицы стилей в ресурсах проекта.
Свойства
Параметры
Доступность: Сервер
ТолькоЧтение
Параметры: ЧитаемоеСоответствие<Строка, Строка>?
Параметры для таблицы стилей XSLT. По умолчанию - Undefined
.