PHP 8.4.6 Released!

XSLTProcessor::transformToUri

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToUriTransforma en URI

Descripción

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

Transforma el nodo fuente en una URI aplicando la hoja de estilo dada por el método XSLTProcessor::importStylesheet().

Parámetros

document

El Dom\Document, DOMDocument, SimpleXMLElement u objeto compatible con libxml a transformar.

uri

La URL para la transformación.

Errores/Excepciones

Los siguientes errores pueden ocurrir al utilizar una expresión que invoca retrollamadas PHP.

  • Lanza una Error si una retrollamada PHP es invocada pero ninguna retrollamada está registrada, o si la retrollamada nombrada no está registrada.
  • Lanza una TypeError si la sintaxis php:function es utilizada y el nombre del gestor no es un string.
  • Lanza una Error si un objeto no-DOM es devuelto por una retrollamada.

Valores devueltos

Devuelve el número de bytes escritos o false si ocurre un error.

Historial de cambios

Versión Descripción
8.4.0 Ahora lanza una Error si la retrollamada no puede ser invocada, en lugar de emitir una advertencia.
8.4.0 Añade soporte para Dom\Document.

Ejemplos

Ejemplo #1 Transformación en un fichero HTML

<?php

// Carga del fuente XML
$xml = new DOMDocument;
$xml->load('collection.xml');

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

// Configuración del transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // adjuntar las reglas xsl

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

?>

Ejemplo #2 Transformación en un fichero HTML utilizando Dom\Document

<?php

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

// Configura el transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // adjuntar las reglas XSL

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

?>

Ver también

add a note

User Contributed Notes 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