(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToDocTransform to a DOMDocument


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

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



The DOMDocument or SimpleXMLElement object to be transformed.

Return Values

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);


The above example will output:

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

See Also

add a note

User Contributed Notes 1 note

franp at free dot fr
16 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