CakeFest 2024: The Official CakePHP Conference

XSLTProcessor::transformToDoc

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToDocTransforme en un document

Description

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

Transforme le nœud source en un document (par ex. DOMDocument) en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet().

Liste de paramètres

document

L'objet DOMDocument ou SimpleXMLElement ou un objet libxml-compatible à transformer.

returnClass

Ce paramètre facultatif peut être utilisé afin que XSLTProcessor::transformToDoc() renvoie un objet de la classe spécifiée. Cette classe doit soit étendre la classe de document, soit être la même classe que celle de document.

Valeurs de retour

Le document résultant ou false si une erreur survient.

Exemples

Exemple #1 Transformation en un document DOM

<?php

// Chargement de la source XML
$xml = new DOMDocument;
$xml->load('collection.xml');

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

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

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

?>

L'exemple ci-dessus va afficher :

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

Voir aussi

add a note

User Contributed Notes 1 note

up
1
franp at free dot fr
17 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();
$proc->importStylesheet($xsl);
$dom = $proc->transformToDoc($xml);
echo $dom->saveXML();

do use :
$proc = new XSLTProcessor();
$proc->importStylesheet($xsl);
$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