xml_set_element_handler
開始要素および終了要素のハンドラを設定する
説明
true xml_set_element_handler(XMLParser $parser
, callable $start_handler
, callable $end_handler
)
start_handler
は、新しいXML要素が開始された場合にコールされます。end_handler
は、XML要素が終了した場合にコールされます。
パラメータ
-
parser
-
XMLパーサ
-
start_handler
-
null
が渡されると、ハンドラはデフォルトの状態にリセットされます。
警告
空文字列を渡すことでもハンドラはリセットされますが、これは PHP 8.4.0 以降非推奨となっています。
handler
が callable の場合、その callable がハンドラとして設定されます。
handler
が文字列の場合、xml_set_object で設定されたオブジェクトのメソッド名になります。
警告
PHP 8.4.0 以降、非推奨となっています。
警告
PHP 8.4.0 以降では、実際に呼び出されるときではなく、ハンドラを設定する際に callable であるかがチェックされます。
従って、コールバックとしてメソッド文字列を指定する場合、それより前に、 xml_set_object を呼び出しておく必要があります。
しかし、この動作も PHP 8.4.0 以降非推奨となっているため、メソッドには適切な callable を使用することが推奨されます。
シグネチャは、以下でなければいけません:
void start_element_handler(XMLParser $parser
, string $name
, array $attributes
)
-
parser
-
ハンドラをコールするXMLパーサ
-
name
-
このハンドラがコールされた要素の名前です。
大文字変換
がこのパーサに関して有効な場合、要素の名前は大文字になります。
-
attributes
-
要素の属性に関する連想配列です。
要素に属性がない場合、配列は空になります。
この配列のキーは属性の名前であり、
値は属性の値です。属性の名前は、要素名と同様に 大文字変換 となります。
属性の値は、大文字変換 されません。
attributes
を順次アクセスすることにより、
属性を宣言した元の順序で取得することができます。
-
end_handler
-
null
が渡されると、ハンドラはデフォルトの状態にリセットされます。
警告
空文字列を渡すことでもハンドラはリセットされますが、これは PHP 8.4.0 以降非推奨となっています。
handler
が callable の場合、その callable がハンドラとして設定されます。
handler
が文字列の場合、xml_set_object で設定されたオブジェクトのメソッド名になります。
警告
PHP 8.4.0 以降、非推奨となっています。
警告
PHP 8.4.0 以降では、実際に呼び出されるときではなく、ハンドラを設定する際に callable であるかがチェックされます。
従って、コールバックとしてメソッド文字列を指定する場合、それより前に、 xml_set_object を呼び出しておく必要があります。
しかし、この動作も PHP 8.4.0 以降非推奨となっているため、メソッドには適切な callable を使用することが推奨されます。
ハンドラのシグネチャは、以下でなければいけません:
void end_element_handler(XMLParser $parser
, string $name
)
-
parser
-
ハンドラをコールするXMLパーサ
-
name
-
このハンドラがコールされた要素の名前です。
このパーサにおいて
大文字変換
が有効な場合、要素名は大文字になります。