(PHP 4 >= 4.0.4)
xslt_set_error_handler — Establecer un manejador de errores para un procesador de XSLT
Establece una función manejadora de errores para el procesador de XSLT dado por
xh
. Esta función se invocará cuando se produzca un error en
la transformación XSLT (esta función también se invoca para
avisos).
xh
El identificador de enlace del procesador de XSLT, creado con xslt_create().
handler
La función de usuario debe aceptar cuatro parámetros: el procesador de XSLT, el nivel de error, el código de error y un array de mensajes. La función se puede mostrar como:
$xh
, int $error_level
, int $error_code
, array $messages
)No devuelve ningún valor.
Ejemplo #1 Ejemplo de xslt_set_error_handler()
<?php
// Nuestro manejador de errores XSLT
function xslt_error_handler($handler, $errno, $level, $info)
{
// Por ahora, vamos a ver solamente los argumentos
var_dump(func_get_args());
}
// Contenido XML :
$xml='<?xml version="1.0"?>
<para>
oh escribí mal la etiqueta de cierre
</pata>';
// Contenido XSL :
$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<strong><xsl:value-of select="para"/></strong>
</xsl:template>
</xsl:stylesheet>';
$xh = xslt_create();
xslt_set_error_handler($xh, "xslt_error_handler");
echo xslt_process($xh, 'arg:/_xml', 'arg:/_xsl',
NULL, array("/_xml" => $xml, "/_xsl" => $xsl));
?>
El resultado del ejemplo sería algo similar a:
array(4) { [0]=> resource(1) of type (XSLT Processor) [1]=> int(3) [2]=> int(0) [3]=> array(6) { ["msgtype"]=> string(5) "error" ["code"]=> string(1) "2" ["module"]=> string(9) "Sablotron" ["URI"]=> string(9) "arg:/_xml" ["line"]=> string(1) "4" ["msg"]=> string(34) "XML parser error 7: mismatched tag" } }