Spec-Zone.ru › Web APIs

XSLTProcessor: метод transformToDocument()

Базовая поддержка Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод transformToDocument() интерфейса XSLTProcessor преобразует предоставленный Node исходник в Document с использованием XSLT-стилей, связанных с XSLTProcessor.

Синтаксис

transformToDocument(source)

Параметры

source

Исходный Node для применения XSLT-стилей.

Возвращаемое значение

Объект Document. Фактический интерфейс зависит от метода вывода стилей:

Метод вывода Результирующий интерфейс
html HTMLDocument
xml XMLDocument
text XMLDocument с единственным корневым элементом <transformiix:result> с текстом в качестве дочернего элемента

Примеры

Использование transformToDocument()

Этот пример демонстрирует, как использовать transformToDocument() для преобразования XML-документа с помощью XSLT, что приводит к новой структуре XML-документа.

HTML

<pre id="result"></pre>

JavaScript

const xmlString = `
<books>
  <book>
    <title>Book 1</title>
    <author>Author 1</author>
  </book>
  <book>
    <title>Book 2</title>
    <author>Author 2</author>
  </book>
</books>
`;

const xsltString = `
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="/">
    <catalog>
      <xsl:for-each select="books/book">
        <item>
          <name><xsl:value-of select="title"/></name>
          <writer><xsl:value-of select="author"/></writer>
        </item>
      </xsl:for-each>
    </catalog>
  </xsl:template>
</xsl:stylesheet>
`;

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "application/xml");
const xsltDoc = parser.parseFromString(xsltString, "application/xml");

const xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsltDoc);

// Perform the transformation, returning the result as a new XML document
const resultDoc = xsltProcessor.transformToDocument(xmlDoc);

// Serialize the result document to a string
const serializer = new XMLSerializer();
const resultString = serializer.serializeToString(resultDoc);

// Display the transformed XML in the page
document.getElementById("result").textContent = resultString;

Результат

Спецификации

Спецификация
DOM
# dom-xsltprocessor-transformtodocument

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
transformToDocument
1Chrome возвращает null в случае ошибки.
12Edge возвращает null в случае ошибки.
1Firefox выбрасывает исключение в случае ошибки.
≤12.1["Opera 12.1 и более ранние версии выбрасывают исключение в случае ошибки.", "Opera 15 и более поздние версии возвращают null в случае ошибки."]
3.1Safari возвращает null в случае ошибки.
18Chrome Android возвращает null в случае ошибки.
4Firefox для Android выбрасывает исключение в случае ошибки.
≤12.1["Opera Android 12.1 и более ранние версии выбрасывают исключение в случае ошибки.", "Opera Android 14 и более поздние версии возвращают null в случае ошибки."]
2Safari на iOS возвращает null в случае ошибки.
1.0Samsung Internet возвращает null в случае ошибки.
3WebView возвращает null в случае ошибки.

См. также

  • XSLTProcessor.transformToFragment()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XSLTProcessor/transformToDocument

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API