PHP マニュアル
前のページ |  | 次のページ

# xslt_set_error_handler

(PHP 4 >= 4.0.4, PECL)

xslt_set_error_handler -- XSLTプロセッサ用のエラーハンドラを設定する

## 説明

void xslt_set_error_handler ( resource xh, mixed handler )

xhで指定したXSLTプロセッサ用にエラーハンド ラ関数を設定します。この関数は、XSLT変換においてエラーが発生する 度にコールされます。(この関数は通知のためにもコールされます)

ユーザ関数は4つのパラメータを受け取る必要があります: 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> oops, I misspelled the closing tag </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() を参照ください。

前のページ | ホーム | 次のページ
xslt_set_encoding | 上に戻る | xslt_set_log