xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handler Задание обработчика ошибок для XSLT-процессора

Описание

void xslt_set_error_handler ( resource $xh , mixed $handler )

Задает функцию обработки ошибок для 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-функции, если нужно использовать метод объекта в качестве обработчика


Участник рейтинга Тэглайн 2010