(PHP 5, PHP 7, PHP 8)
XSLTProcessor::transformToDoc — Transforma en un documento
$document, ?string $returnClass = null): object|falseTransforma el nodo fuente en un documento (por ejemplo, DOMDocument) aplicando la hoja de estilo dada por el método XSLTProcessor::importStylesheet().
documentEl Dom\Document, DOMDocument, SimpleXMLElement o un objeto compatible con libxml a transformar.
returnClass
Este parámetro opcional puede ser utilizado para que
XSLTProcessor::transformToDoc()
devuelva un objeto de la clase especificada.
Esta clase debe extender o ser la misma clase que la de document.
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.
El documento resultante o false si ocurre un error.
| 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. |
Ejemplo #1 Transformación en DOMDocument
<?php
// Carga de la 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
echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>El ejemplo anterior mostrará:
¡Hola! Bienvenido a la increíble colección de CD de Nicolas Eliaszewicz.
Ejemplo #2 Transformación en Dom\Document
<?php
$xml = Dom\XMLDocument::createFromFile('collection.xml');
$xsl = Dom\XMLDocument::createFromFile('collection.xsl');
// Configuración del transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // adjuntar las reglas xsl
echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>El ejemplo anterior mostrará:
¡Hola! Bienvenido a la increíble colección de CD de Nicolas Eliaszewicz.