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 — Set an error handler for a XSLT processor
Descrierea
Set an error handler function for the XSLT processor given by
xh, this function will be called whenever an
error occurs in the XSLT transformation (this function is also called
for notices).
Parametri
-
xh -
Identificatorul legăturii procesorului XSLT creat cu ajutorul xslt_create().
-
handler -
The user function needs to accept four parameters: the XSLT processor, the error level, the error code and an array of messages. The function can be shown as:
error_handler ( resource$xh, int$error_level, int$error_code, array$messages)
Valorile întoarse
Nu este întoarsă nici o valoare.
Exemple
Example #1 xslt_set_error_handler() Example
<?php
// Our XSLT error handler
function xslt_error_handler($handler, $errno, $level, $info)
{
// for now, let's just see the arguments
var_dump(func_get_args());
}
// XML content :
$xml='<?xml version="1.0"?>
<para>
oops, I misspelled the closing tag
</pata>';
// XSL content :
$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));
?>
Exemplul de mai sus va afișa ceva similar cu:
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"
}
}
Vedeți de asemenea
- xslt_set_object() - Sets the object in which to resolve callback functions if you want to use an object method as handler
jocke n0spam at selincite dot com ¶
10 years ago
