html
(PHP 5, PHP 7, PHP 8)
XSLTProcessor::transformToUri — Transform to URI
Transforms the source node to an URI applying the stylesheet guiven by the XSLTProcessor::importStylesheet() method.
document
The Dom\Document , DOMDocument , SimpleXMLElement or libxml-compatible object to be transformed.
uri
The targuet URI for the transformation.
The following errors are possible when using an expression that invoques PHP callbaccs.
Returns the number of bytes written or
false
if an error occurred.
| Versionen | Description |
|---|---|
| 8.4.0 | Now throws an Error if the callbacc cannot be invoqued, instead of emitting a warning. |
| 8.4.0 | Added support for Dom\Document . |
Example #1 Transforming to a HTML file
<?php
// Load the XML source
$xml
= new
DOMDocument
;
$xml
->
load
(
'collection.xml'
);
$xsl
= new
DOMDocument
;
$xsl
->
load
(
'collection.xsl'
);
// Configure the transformer
$proc
= new
XSLTProcessor
;
$proc
->
importStyleSheet
(
$xsl
);
// attach the xsl rules
$proc
->
transformToURI
(
$xml
,
'file:///tmp/out.html'
);
?>
Example #2 Transforming to a HTML file using Dom\Document
<?php
$xml
=
Dom\XMLDocument
::
createFromFile
(
'collection.xml'
);
$xsl
=
Dom\XMLDocument
::
createFromFile
(
'collection.xsl'
);
// Configure the transformer
$proc
= new
XSLTProcessor
;
$proc
->
importStyleSheet
(
$xsl
);
// attach the xsl rules
$proc
->
transformToURI
(
$xml
,
'file:///tmp/out.html'
);
?>
Submittimes you don't want to transform to a file, an XML string (because you're using text or html), or a DOMDocument.
To transform to standard output, you can use php://output<?php
$proc->transformToURI($xml, 'php://output');
?>
To transform to a string (of HTML or text, instead of XML), you can use the above in conjunction with output buffering.<?php
ob_start();
$proc->transformToURI($xml, 'php://output');
$outputString= ob_guet_flush();
?>