xml_set_element_handler

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

xml_set_element_handlerAffecte les gestionnaires de début et de fin de balise XML

Description

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

Affecte les gestionnaires de début et de fin de l'analyseur XML parser.

start_handler est appelé quand un nouvel élément XML est ouvert. end_handler est appelé quand un élément XML est fermé.

Liste de paramètres

parser

Le parseur XML.

start_handler

Si null est passé, le gestionnaire est réinitialisé à son état par défaut.

Avertissement

Une chaîne vide réinitialisera également le gestionnaire, cependant cette fonctionnalité est dépréciée à partir de PHP 8.4.0.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

Avertissement

Cette fonctionnalité est dépréciée à partir de PHP 8.4.0.

Avertissement

À partir de PHP 8.4.0, la validité du callable est vérifiée lors de la configuration du gestionnaire, et non au moment de son appel. Cela signifie que xml_set_object() doit être appelé avant de définir une méthode sous forme de chaîne comme rappel. Cependant, comme ce comportement est également déprécié à partir de PHP 8.4.0, il est recommandé d'utiliser un callable approprié pour la méthode.

La signature du gestionnaire doit être :

start_element_handler(XMLParser $parser, string $name, array $attributes): void
parser
Le parseur XML appelant le gestionnaire.
name
Contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.
attributes
Un tableau associatif avec les attributs de l'élément. Le tableau est vide s'il n'y a pas d'attributs. Les clés de ce tableau seront les noms des attributs, et les valeurs seront les valeurs correspondantes des attributs. Les noms des attributs seront mis en majuscules si l'analyseur gère la casse. Les valeurs des attributs seront inchangées. L'ordre dans lequel attributes est traversé est identique à l'ordre dans lequel les attributs ont été déclaré.

end_handler

Si null est passé, le gestionnaire est réinitialisé à son état par défaut.

Avertissement

Une chaîne vide réinitialisera également le gestionnaire, cependant cette fonctionnalité est dépréciée à partir de PHP 8.4.0.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

Avertissement

Cette fonctionnalité est dépréciée à partir de PHP 8.4.0.

Avertissement

À partir de PHP 8.4.0, la validité du callable est vérifiée lors de la configuration du gestionnaire, et non au moment de son appel. Cela signifie que xml_set_object() doit être appelé avant de définir une méthode sous forme de chaîne comme rappel. Cependant, comme ce comportement est également déprécié à partir de PHP 8.4.0, il est recommandé d'utiliser un callable approprié pour la méthode.

La signature du gestionnaire doit être :

end_element_handler(XMLParser $parser, string $name): void
parser
Le parseur XML appelant le gestionnaire.
name
Contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.

Valeurs de retour

Retourne toujours true.

Historique

Version Description
8.4.0 Passing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
8.4.0 The validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
8.0.0 parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.