PHP xml_set_unparsed_entity_decl_handler()関数
定義と使用方法
xml_set_unparsed_entity_decl_handler()関数は、解析できない実体名(NDATA)宣言に遭遇したときに呼び出される関数を定義します。
処理器が成功して構築された場合、この関数はtrueを返します;それ以外の場合はfalseを返します。
文法
xml_set_unparsed_entity_decl_handler(parser,ハンドラ)
パラメータ | 説明 |
---|---|
parser | 必要です。使用するXML解析器を定義します。 |
ハンドラ | 必要です。関数を定義します。 |
由 ハンドラ パラメータが定義する関数は6つのパラメータを持たなければなりません:
パラメータ | 説明 |
---|---|
parser | 必要です。XML解析器を呼び出すためのXML解析器を含む変数を定義します。 |
name | 必要です。実体の名前を含む変数を定義します。 |
base |
必要です。解析する実体のシステム識別子(system_id)の基本を含む変数を定義します。 現在、このパラメータは通常空文字列に設定されています。 |
system_id | 必要です。実体のシステム識別子を含む変数を定義します。 |
public_id | 必要です。実体の公共識別子を含む変数を定義します。 |
notation | 必要です。変数を定義し、実体データの種類を示すシンボルを含みます。 |
説明
ハンドラ パラメータは、オブジェクト参照とメソッド名を含む配列でもあります。
例
<?php $parser=xml_parser_create(); function char($parser,$data) { } function unparsed_ent_handler($parser,$entname, $base,$sysID,$pubID,$notname) { print "$entname"; print "$sysID"; print "$pubID"; print "$notname"; } xml_set_unparsed_entity_decl_handler($parser, "unparsed_ent_handler"); $fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML エラー: %s 行 %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>