Преобразовывает в XML-строку

# XSLTProcessor::transformToXml

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToXml — Преобразовывает в XML-строку

### Описание

public function XSLTProcessor::transformToXml(object `$document`): string|null|false

Метод преобразовывает исходный узел в строку, применяя таблицы стилей, которые установили методом xsltprocessor::importStylesheet().

### Список параметров

`document`

  Объект, который требуется преобразовать. Параметр принимает объект класса Dom\Document, DOMDocument, SimpleXMLElement или объект, который совместим с библиотекой libxml.

`returnClass`

  Через этот необязательный параметр устанавливают класс объекта, который вернёт метод XSLTProcessor::transformToDoc(). В параметр передают название класса, который либо расширяет, либо принадлежит тому же классу, который передали в параметр `document`.

### Ошибки

При работе с выражением, в котором вызывают PHP-функции обратного вызова, возникают следующие ошибки:

- Метод выбрасывает ошибку Error, если в выражении вызвали PHP-функцию обратного вызова, но ни одной callback-функции не регистрировали, или если callback-функцию с таким названием не зарегистрировали.
- Метод выбрасывает ошибку TypeError, если при вызове функции из XPath-выражения синтаксисом `php:function` вместо строкового названия обработчика передают значение другого типа.
- Метод выбрасывает ошибку Error, если callback-функция вместо DOM-объекта возвращает значение другого типа.

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

Метод возвращает результат преобразования, или `false`, если возникла ошибка.

### Список изменений

Версия | Описание
--- | ---
8.4.0 | Вместо предупреждения метод теперь выбрасывает ошибку Error, если callback-функцию невозможно вызвать.
8.4.0 | Добавили поддержку объектов класса Dom\Document.

### Примеры

Пример #1 Пример преобразования узла в строку

    <?php

    // Загрузка источника XML-данных
    $xml = new DOMDocument();
    $xml->load('collection.xml');

    $xsl = new DOMDocument();
    $xsl->load('collection.xsl');

    // Настройка преобразования
    $proc = new XSLTProcessor;
    $proc->importStyleSheet($xsl); // Добавление XSL-стилей

    echo $proc->transformToXML($xml);

    ?>

Результат выполнения приведённого примера:

    Привет! Добро пожаловать в замечательную коллекцию компакт-дисков Николаса Элиашевича!

    <h1>Боритесь за свой разум (Fight for your mind)</h1><h2>Бен Харпер (Ben Harper) - 1995</h2><hr>
    <h1>Электрическая Ледиленд (Electric Ladyland)</h1><h2>Джими Хендрикс (Jimi Hendrix) - 1997</h2><hr>

Пример #2 Пример преобразования узла в строку из объекта класса Dom\Document

    <?php

    $xml = Dom\XMLDocument::createFromFile('collection.xml');
    $xsl = Dom\XMLDocument::createFromFile('collection.xsl');

    // Настройка преобразования
    $proc = new XSLTProcessor();
    $proc->importStyleSheet($xsl); // Прикрепление XSL-правил

    echo $proc->transformToXML($xml);

    ?>

Результат выполнения приведённого примера:

    Привет! Добро пожаловать в замечательную коллекцию компакт-дисков Николаса Элиашевича!

    <h1>Боритесь за свой разум (Fight for your mind)</h1><h2>Бен Харпер (Ben Harper) - 1995</h2><hr>
    <h1>Электрическая Ледиленд (Electric Ladyland)</h1><h2>Джими Хендрикс (Jimi Hendrix) - 1997</h2><hr>

### Смотрите также

- XSLTProcessor::transformToDoc() - Преобразовывает в документ
- XSLTProcessor::transformToUri() - Преобразовывает в URI-идентификатор

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open