PHPerKaigi 2021


(PHP 5, PHP 7)

XSLTProcessor::transformToDocTransform to a DOMDocument


public XSLTProcessor::transformToDoc ( object $document , string|null $returnClass = null ) : DOMDocument|false

Transforms the source node to a DOMDocument applying the stylesheet given by the XSLTProcessor::importStylesheet() method.



The node to be transformed.

Valorile întoarse

The resulting DOMDocument or false on error.


Example #1 Transforming to a DOMDocument


// Load the XML source
$xml = new DOMDocument;

$xsl = new DOMDocument;

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);


Exemplul de mai sus va afișa:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

A se vedea și

add a note add a note

User Contributed Notes 1 note

franp at free dot fr
14 years ago
In most cases if you expect XML (or XHTML) as output you better use transformToXML() directly. You gain better control over xsl:output attributes, notably omit-xml-declaration.

Instead of :
$proc = new XSLTProcessor();
$dom = $proc->transformToDoc($xml);
echo $dom->saveXML();

do use :
$proc = new XSLTProcessor();
$newXml = $proc->transformToXML($xml);
echo $newXml;

In the first case, <?xml version="1.0" encoding="utf-8"?> is added whatever you set the omit-xml-declaration while transformToXML() take the attribute into account.
To Top