開始要素および終了要素のハンドラを設定する

# xml_set_element_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_element_handler — 開始要素および終了要素のハンドラを設定する

### 説明

function xml_set_element_handler(XMLParser `$parser`, callable|string|null `$start_handler`, callable|string|null `$end_handler`): true

XML パーサー `parser` の要素ハンドラ関数を設定します。

`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 を使用することが推奨されます。

  シグネチャは、以下でなければいけません:

  function start_element_handler(XMLParser `$parser`, string `$name`, array `$attributes`): void
  `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 を使用することが推奨されます。

  ハンドラのシグネチャは、以下でなければいけません:

  function end_element_handler(XMLParser `$parser`, string `$name`): void
  `parser`
    ハンドラをコールするXMLパーサー
  `name`
    このハンドラがコールされた要素の名前です。 このパーサーにおいて 大文字変換 が有効な場合、要素名は大文字になります。

### 戻り値

常に `true` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.4.0 | 非 callable な string を `handler` に渡すことは、現在非推奨となっています。 メソッドには適切な callable を使用するか、ハンドラをリセットする場合は `null` を使用してください。
8.4.0 | `handler` が callable として有効であるかどうかは、 呼び出し時ではなく、ハンドラーを設定する際にチェックされるようになりました。
8.0.0 | 引数 `parser` は、 XMLParser インスタンスを期待するようになりました。 これより前のバージョンでは、有効な `xml` resource が期待されていました。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open