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 — Imposta un error handler per un processore XSLT
Descrizione
Imposta una funzione di error handler per il processore XSLT dato da
xh, questa funzione sarà richiamata quando ha luogo un
errore nella trasformazione XSLT (questa funzione è anche richiamata
per gli avvisi).
Elenco dei parametri
-
xh -
The XSLT processor link identifier, created with xslt_create().
-
handler -
La funzione utente deve ricevere quattro parametri: il processore XSLT, il livello di errore, il codice di errore e un array dei messaggi. La funzione può essere rappresentata come:
error_handler ( resource$xh, int$error_level, int$error_code, array$messages)
Valori restituiti
Nessun valore viene restituito.
Esempi
Example #1 Esempio di uso di xslt_set_error_handler()
<?php
// Il nostro gestore degli errori XSLT
function xslt_error_handler($handler, $errno, $level, $info)
{
// Per ora visualizza i parametri
var_dump(func_get_args());
}
// contenuto XML:
$xml='<?xml version="1.0"?>
<para>
oops, I misspelled the closing tag
</pata>';
// Contenuto 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));
?>
Il precedente esempio visualizzerà qualcosa simile 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"
}
}
Vedere anche:
- Vedere xslt_set_object() - Sets the object in which to resolve callback functions se si desidera utilizzare come handler un metodo di un oggetto
jocke n0spam at selincite dot com ¶
10 years ago
