Inicia análise de um documento XML

# xml_parse

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

xml_parse — Inicia análise de um documento XML

### Descrição

function xml_parse(XMLParser `$parser`, string `$data`, bool `$is_final` = `false`): int

xml_parse() analisa um documento XML. Os manipuladores para os eventos configurados são chamados quantas vezes forem necessárias.

### Parâmetros

`parser`

  Uma referência ao analisador XML a ser usado.

`data`

  Bloco de dados a serem analisados. Um documento pode ser analisado em partes chamando xml_parse() várias vezes com novos dados, desde que o parâmetro `is_final` esteja definido e `true` quando os últimos dados forem analisados.

`is_final`

  Se definido e `true`, `data` é o último pedaço de dados enviado nesta análise.

### Valor Retornado

Retorna 1 em caso de sucesso ou 0 em caso de falha.

Para análises malsucedidas, as informações de erro podem ser recuperadas com xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number() e xml_get_current_byte_index().

> Nota:

> Alguns erros (como erros de entidade) são relatados no final dos dados, portanto, somente se `is_final` estiver definido e `true`.

### Registro de Alterações

Versão | Descrição
--- | ---
8.0.0 | O parâmetro `parser` agora espera uma instância de XMLParser; anteriormente, um resource `xml` válido era esperado.

### Exemplos

Exemplo #1 Análise em blocos de documentos XML grandes

Este exemplo mostra como documentos XML grandes podem ser lidos e analisados ​​em pedaços, para que não seja necessário manter o documento inteiro na memória. O tratamento de erros é omitido por questões de brevidade.

    <?php
    $stream = fopen('examples/book-simple.xml', 'r');
    $parser = xml_parser_create();

    xml_set_element_handler(
        $parser,
        function($parser, $name, $attributes) { echo $name, PHP_EOL; },
        function($parser, $name) { echo $name, PHP_EOL; }
    );

    while (($data = fread($stream, 16384))) {
        xml_parse($parser, $data); // analisa o bloco atual
    }
    xml_parse($parser, '', true); // finaliza a análise
    fclose($stream);

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