(PHP 5, PHP 7, PHP 8)
XSLTProcessor::transformToDoc — Transforma em um documento
$document, ?string $returnClass = null): object|falseTransforma o nó de origem em um documento (ex.: DOMDocument) aplicando a folha de estilos fornecida pelo método XSLTProcessor::importStylesheet().
documentO objeto Dom\Document, DOMDocument, SimpleXMLElement, ou outro compatível com libxml a ser transformado.
returnClass
Este parâmetro opcional pode ser usado para que
XSLTProcessor::transformToDoc()
retorne um objeto da classe especificada.
Esta classe deve estender ou ser da mesma classe de document.
Os seguintes erros são possíveis ao usar uma expressão que invoca retornos de chamada PHP.
Lança um Error se um retorno de chamada do PHP for invocado, mas não houver nenhum retorno de chamada registrado ou se o retorno de chamada nomeado não tiver sido registrado.
Lança um TypeError se
a sintaxe php:function for usada e o nome do manipulador
não for uma string.
Lança um Error se um objeto não DOM foi retornado de um retorno de chamada.
O documento resultante ou false em caso de erro.
| Versão | Descrição |
|---|---|
| 8.4.0 | Agora lança uma exceção Error se a função de retorno não puder ser chamada, em vez de emitir um alerta. |
| 8.4.0 | Adicionado suporte para Dom\Document. |
Exemplo #1 Transformando em um DOMDocument
<?php
// Carrega a fonte XML
$xml = new DOMDocument;
$xml->load('collection.xml');
$xsl = new DOMDocument;
$xsl->load('collection.xsl');
// Configura o transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // anexa as regras xsl
echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>O exemplo acima produzirá:
Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!
Exemplo #2 Transformando em um Dom\Document
<?php
$xml = Dom\XMLDocument::createFromFile('collection.xml');
$xsl = Dom\XMLDocument::createFromFile('collection.xsl');
// Configura o transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // anexa as regras xsl
echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>O exemplo acima produzirá:
Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!