Преобразование документа XML
Структура документа XML может быть изменена с помощью XSLT (eXtensible Stylesheet Language Transformations) — стандартного языка преобразования XML. К объектной модели исходного документа применяется таблица стилей XSLT, состоящая из одного или нескольких шаблонов, в результате чего создается новая структура узлов, на основе которой создается новый выходной документ XML. Для доступа к узлам XML-документа в XSLT используется язык запросов XPath.
«1С:Шина» позволяет использовать все стандартные средства преобразования с использованием XSLT. Для этого в «Шине» существует специальный тип встроенного языка — ПреобразовательXml. Конструктор объекта данного типа в качестве аргументов принимает таблицу стилей и дополнительные параметры к ней. Также в качестве аргумента может передаваться обработчик сообщения XSLT, который может использоваться для отладки и логирования при преобразовании документа.
Пример
Для следующего документа в формате XML:
<?xml version="1.0" encoding="UTF-8"?>
<Проекты>
  <Проект>
      <Приложение Наз вание="Демо CRM" Сборка="1.0"/>
      <Приложение Название="Демонстрационное приложение" Сборка="1.1"/>
      <Приложение Название="1С:Кабинет сотрудника" Сборка="2.0"/>
  </Проект>
</Проекты>
так может выглядеть таблица стилей XSLT 1.0:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml"/>
    <xsl:template match="Проект">
        <Приложения>
            <xsl:apply-templates/>
        </Приложения>
    </xsl:template>
    <xsl:template match="Приложение">
        <Приложение>
            <xsl:apply-templates select="@*"/>
        </Приложение>
    </xsl:template>
    <xsl:template match="@Название">
        <Название>
            <xsl:value-of select="."/>
        </Название>
    </xsl:template>
    <xsl:template match="@Сборка">
        <Сборка>
            <xsl:value-of select="."/>
        </Сборка>
    </xsl:template>
</xsl:stylesheet>
на основе которой создается дерево с корневым элементом Приложения, а атрибуты каждого приложения из старого файла становятся самостоятельными элементами:
<?xml version="1.0" encoding="UTF-8"?>
<Приложения>
    <Приложение>
      <Название>Демо CRM</Название>
      <Сборка>1.0</Сборка>
   </Приложение>
    <Приложение>
      <Название>Демонстрационное приложение</Название>
      <Сборка>1.1</Сборка>
   </Приложение>
    <Приложение>
      <Название>1С:Кабинет сотрудника</Название>
      <Сборка>2.0</Сборка>
   </Приложение>
</Приложения>