(PHP 5 >= 5.0.4, PHP 7, PHP 8)
XSLTProcessor::registerPHPFunctions — Activa la capacidad de usar funciones PHP como funciones XSLT
Este método activa la capacidad de usar funciones PHP como funciones XSLT dentro de las hojas de estilo XSL.
functions
Usar este parámetro para acceder únicamente a ciertas funciones a ser llamadas desde XSLT.
Este parámetro puede ser tanto un string (nombre de la función) como un array de funciones.
No devuelve ningún valor.
Ejemplo #1 Sencilla llamada a una función de PHP desde una hoja de estilos
<?php
$xml = <<<EOB
<allusers>
<user>
<uid>bob</uid>
</user>
<user>
<uid>joe</uid>
</user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="allusers">
<html><body>
<h2>Users</h2>
<table>
<xsl:for-each select="user">
<tr><td>
<xsl:value-of
select="php:function('ucfirst',string(uid))"/>
</td></tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = new DOMDocument();
$xmldoc->loadXML($xml);
$xsldoc = new DOMDocument();
$xsldoc->loadXML($xsl);
$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>