Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : XSLT Functions : xslt_set_error_handler

xslt_set_error_handler

Set an error handler for a XSLT processor (PHP 4 >= 4.0.4)
void xslt_set_error_handler ( resource xh, mixed handler )

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).

Parameters

xh

The XSLT processor link identifier, created with 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:

Return Values

No value is returned.

Examples

Example 2665. 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));

?>

The above example will output something similar to:

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"
 }
}


See Also
xslt_set_object() if you want to use an object method as handler

Code Examples / Notes » xslt_set_error_handler

26-aug-2002 09:15

To set the error handler to the instance of an object, use the:
xslt_set_error_handler($xh, array($obj, $method))
syntax.


jocke n0spam

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"));


Change Language


Follow Navioo On Twitter
xslt_backend_info
xslt_backend_name
xslt_backend_version
xslt_create
xslt_errno
xslt_error
xslt_free
xslt_getopt
xslt_process
xslt_set_base
xslt_set_encoding
xslt_set_error_handler
xslt_set_log
xslt_set_object
xslt_set_sax_handler
xslt_set_sax_handlers
xslt_set_scheme_handler
xslt_set_scheme_handlers
xslt_setopt
eXTReMe Tracker