xml_set_element_handler

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

xml_set_element_handlerConfigura manipuladores de elementos de início e fim

Descrição

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

Define as funções do manipulador de elementos para o parser XML.

start_handler é chamado quando um novo elemento XML é aberto. end_handler é chamado quando um elemento XML é fechado.

Parâmetros

parser

O analisador XML.

start_handler

Se null for passado, o manipulador é redefinido para seu estado padrão.

Aviso

Uma string vazia também redefine o manipulador, entretanto isto foi descontinuado a partir do PHP 8.4.0.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objeto definido com xml_set_object().

Aviso

Isto foi descontinuado a partir do PHP 8.4.0.

Aviso

A partir do PHP 8.4.0, a função de retorno é verificada quanto à validade ao configurar o manipulador, e não quando é chamada. Isto significa que xml_set_object() precisa ser chamada antes de configurar uma string de método como a função de retorno. Entretando, como este comportamento também foi descontinuado a partir do PHP 8.4.0, usar um callable adequado para o método é recomendado.

A assinatura do manipulador deve ser:

start_element_handler(XMLParser $parser, string $name, array $attributes): void
parser
O analisador XML que chama o manipulador.
name
Contém o nome do elemento para o qual este manipulador é chamado. Se case-folding estiver em vigor para este analisador, o nome do elemento estará em letras maiúsculas.
attributes
Um array associativo com os atributos do elemento. O array estará vazio se o elemento não tiver atributos. As chaves deste array são os nomes dos atributos, os valores são os valores dos atributos. Os nomes dos atributos são convertidos para minúsculo nos mesmos critérios que os nomes dos elementos. Os valores dos atributos não são convertidos para minúsculo. A ordem em que attributes é percorrida é idêntica à ordem em que os atributos foram declarados.

end_handler

Se null for passado, o manipulador é redefinido para seu estado padrão.

Aviso

Uma string vazia também redefine o manipulador, entretanto isto foi descontinuado a partir do PHP 8.4.0.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objeto definido com xml_set_object().

Aviso

Isto foi descontinuado a partir do PHP 8.4.0.

Aviso

A partir do PHP 8.4.0, a função de retorno é verificada quanto à validade ao configurar o manipulador, e não quando é chamada. Isto significa que xml_set_object() precisa ser chamada antes de configurar uma string de método como a função de retorno. Entretando, como este comportamento também foi descontinuado a partir do PHP 8.4.0, usar um callable adequado para o método é recomendado.

A assinatura do manipulador deve ser:

end_element_handler(XMLParser $parser, string $name): void
parser
O analisador XML que chama o manipulador.
name
Contém o nome do elemento para o qual este manipulador é chamado. Se case-folding estiver em vigor para este analisador, o nome do elemento estará em letras maiúsculas.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão Descrição
8.4.0 Passar uma string não-callable no parâmetro handler foi descontinuado, use um chamável apropriado para métodos, ou null para redefinir o manipulador.
8.4.0 A validade do manipulador handler como um tipo callable agora é verificada ao configurar o manipulador ao invés de verificar na chamada.
8.0.0 O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.