XSLTProcessor::transformToUri

(PHP 5, PHP 7, PHP 8)

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

Описание

public XSLTProcessor::transformToUri(object $document, string $uri): int

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

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

document

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

uri

Целевой URI-идентификатор для преобразования.

Ошибки

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

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

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

Метод возвращает количество байтов, которое записал, или false, если возникла ошибка.

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

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

Примеры

Пример #1 Пример преобразования узла в HTML-файл

<?php

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

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

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

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

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

<?php

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

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

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

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

Добавить

Примечания пользователей 1 note

up
4
jonbarnett at gmail dot com
17 years ago
Sometimes you don't want to transform to a file, an XML string (because you're using text or html), or a DOMDocument.

To transform to standard output, you can use php://output

<?php
$proc
->transformToURI($xml, 'php://output');
?>

To transform to a string (of HTML or text, instead of XML), you can use the above in conjunction with output buffering.
<?php
ob_start
();
$proc->transformToURI($xml, 'php://output');
$outputString = ob_get_flush();
?>
To Top