Inicia el análisis de un documento XML

# xml_parse

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

xml_parse — Inicia el análisis de un documento XML

### Descripción

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

xml_parse() analiza un documento XML. Los gestores para los eventos configurados son llamados tantas veces como sea necesario.

### Parámetros

`parser`

  Una referencia al analizador XML a utilizar.

`data`

  Una parte de los datos a analizar. Un documento puede ser analizado por partes mediante llamadas sucesivas a xml_parse() con nuevos datos, siempre que el parámetro `is_final` esté definido como `true` cuando se analicen los últimos datos.

`is_final`

  Si está definido y vale `true`, `data` será el último fragmento de datos enviado al analizador.

### Valores devueltos

Devuelve 1 en caso de éxito o 0 en caso de fallo.

En caso de fallo en el análisis, la causa del error puede obtenerse mediante las funciones xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number() y xml_get_current_byte_index().

> Nota:

> Algunos errores (incluyendo errores de entidades) son reportados al final de los datos, esto únicamente si `is_final` vale `true`.

### Historial de cambios

Versión | Descripción
--- | ---
8.0.0 | `parser` ahora espera una instancia de XMLParser en lugar de un resource `xml`.

### Ejemplos

Ejemplo #1 Análisis de documentos XML grandes por partes

Este ejemplo muestra cómo los documentos XML grandes pueden ser leídos y analizados por partes, permitiendo así no mantener en memoria la totalidad del documento. No se ha establecido ningún gestor de errores para hacer el ejemplo más conciso.

    <?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); // análisis de la parte actual
    }
    xml_parse($parser, '', true); // finalización del análisis
    fclose($stream);

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