xslt_set_error_handler
(PHP 4 >= 4.0.4)
xslt_set_error_handler — Задание обработчика ошибок для XSLT-процессора
Описание
Задает функцию обработки ошибок для XSLT-процессора,
заданного аргументом xh
. Эта функция будет
вызываться в случает возникновения ошибок в процессе
XSLT преобразования (также она будет вызываться при
уведомлениях).
Список параметров
-
xh
-
Идентификатор ссылки XSLT-процессора, созданный с помощью функции xslt_create().
-
handler
-
Пользовательская функция должна принимать четыре аргумента: ссылку на XSLT-процессор, уровень ошибки, код ошибки и массив сообщений об ошибках. Это может выглядеть так:
error_handler ( resource$xh
, int$error_level
, int$error_code
, array$messages
)
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Примеры
Пример #1 Пример использования xslt_set_error_handler()
<?php
// Наш обработчик ошибок XSLT
function xslt_error_handler($handler, $errno, $level, $info)
{
// проверим список аргументов
var_dump(func_get_args());
}
// XML содержимое :
$xml='<?xml version="1.0"?>
<para>
упс, я пропустил закрывающий тэг
</pata>';
// 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));
?>
Результатом выполнения данного примера будет что-то подобное:
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" } }
Смотрите также
- xslt_set_object() - Задает объект, в котором будут реализованы callback-функции, если нужно использовать метод объекта в качестве обработчика
- 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
Коментарии
To set the error handler to the instance of an object, use the:
xslt_set_error_handler($xh, array($obj, $method))
syntax.
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"));