Addition to the last note. in the array I have used array($this, "myMethod") to make it use an internal function in a class.
I reckon this is how it is meant to work (not tested)
$myObj = new MyObj()
xslt_set_error_handler_($xh, array($myObj, "myErrorMethod"));
xslt_set_error_handler
(PHP 4 >= 4.0.4)
xslt_set_error_handler — Configure le gestionnaire d'erreurs du processeur XSLT
Description
xslt_set_error_handler() configure le gestionnaire
d'erreurs du processeur XSLT
représenté par xh. Le gestionnaire sera appelé à
chaque fois qu'une erreur survient durant les transformations
XSLT (pour les alertes aussi).
Liste de paramètres
-
xh -
La ressource de processus XSLT, créé par la fonction xslt_create().
-
handler -
La fonction utilisateur, qui doit accepter quatre paramètres : le processeur XSLT, le niveau d'erreur, le code erreur et un tableau de messages. La fonction peut être définie comme :
error_handler ( resource$xh, int$error_level, int$error_code, array$messages)
Valeurs de retour
Aucune valeur n'est retournée.
Exemples
Exemple #1 Exemple avec xslt_set_error_handler()
<?php
// Notre gestionnaire d'erreur
function xslt_error_handler($handler, $errno, $level, $info)
{
// pour le moment, on regarde juste ce que l'on reçoit
var_dump(func_get_args());
}
// Contenu XML :
$xml='<?xml version="1.0"?>
<para>
oops, j\'ai mal écrit la balise fermante
</pata>';
// Contenu 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));
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
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"
}
}
Voir aussi
- xslt_set_object() - Définit l'objet dans lequel doivent être résolues les fonctions de rappel, si vous voulez utiliser une méthode d'un objet comme gestionnaire d'erreurs
To set the error handler to the instance of an object, use the:
xslt_set_error_handler($xh, array($obj, $method))
syntax.
