W3docs

xml_set_default_handler()

A função xml_set_default_handler() define um handler padrão para um parser XML no PHP. Saiba mais sobre sua sintaxe e uso.

⚠️ Obsoleta: Esta função está obsoleta desde o PHP 8.0.0. A extensão Expat XML Parser é considerada legada. Para desenvolvimento moderno em PHP, recomenda-se utilizar DOMDocument ou SimpleXML.

A função xml_set_default_handler() é uma função nativa do PHP que pertence à extensão Expat XML Parser. Ela define uma função personalizada como handler padrão para dados de caracteres que não são capturados pelo xml_set_character_data_handler(). Isso é útil quando você precisa processar conteúdo de texto XML bruto sem definir um handler de dados de caracteres específico.

Sintaxe

A sintaxe da função xml_set_default_handler() é a seguinte:

xml_set_default_handler(resource $parser, callable $handler): bool

Onde $parser é o recurso do parser XML criado por xml_parser_create(), e $handler é o nome da função personalizada que irá processar os dados de caracteres XML. A função retorna true em caso de sucesso ou false em caso de falha.

Exemplos de Uso

Vamos ver um exemplo prático de uso de xml_set_default_handler() em PHP.

Exemplo: Definindo uma Função Handler Padrão

Suponha que você tenha uma string XML que deseja analisar usando o Expat XML Parser. Você pode usar xml_parser_create() para criar um novo parser, definir um handler padrão e, em seguida, analisar os dados:

Definindo uma Função Handler Padrão em PHP

function handle_default($parser, $data) {
    echo "Default handler received: " . trim($data) . "\n";
}

$xml_parser = xml_parser_create();
xml_set_default_handler($xml_parser, "handle_default");

$xml_data = "<root>Hello World</root>";
if (xml_parse($xml_parser, $xml_data, true) === false) {
    echo "Parse error: " . xml_error_string(xml_get_error_code($xml_parser)) . "\n";
}
xml_parser_free($xml_parser);

Este código cria um parser Expat usando xml_parser_create(). Em seguida, define a função handle_default() para capturar dados de caracteres que não são tratados por xml_set_character_data_handler(). A função xml_parse() processa a string XML, acionando o handler padrão para o conteúdo de texto. A verificação de erros adicionada usa xml_get_error_code() e xml_error_string() para capturar e exibir quaisquer falhas de análise. Por fim, xml_parser_free() libera o recurso do parser.

Conclusão

Neste artigo, discutimos a função xml_set_default_handler() do PHP e como ela funciona com a extensão Expat XML Parser. Explicamos sua sintaxe, esclarecemos seu papel no tratamento de dados de caracteres e fornecemos um exemplo completo com tratamento de erros. Observe que a extensão Expat é legada e está obsoleta desde o PHP 8.0.0. Ao usar xml_set_default_handler(), você pode processar eficientemente o conteúdo de texto XML bruto em suas aplicações PHP, embora projetos modernos devam preferir DOMDocument ou SimpleXML.

Prática

Prática
O que o handler padrão de XML no PHP faz?
O que o handler padrão de XML no PHP faz?
Was this page helpful?