(PHP 4 >= 4.0.4)
xslt_set_error_handler — Set an error handler for a XSLT processor
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).
xh
XSLT 处理器连接标识符,由 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:
$xh
, int $error_level
, int $error_code
, array $messages
)没有返回值。
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));
?>
以上例程的输出类似于:
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" } }
jocke n0spam at selincite dot com (2002-10-01 08:20:48)
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"));
(2002-08-26 13:15:55)
To set the error handler to the instance of an object, use the:
xslt_set_error_handler($xh, array($obj, $method))
syntax.