Los últimos tutoriales de desarrollo web
 

PHP XML Analizador de Expat


The Expat analizador XML integrado hace posible el procesamiento de documentos XML en PHP.


El Analizador XML de Expat

El analizador de Expat es un analizador basado en eventos.

Mira la siguiente fracción XML:

<from>Jani</from>

Un analizador basado en eventos informa el XML anterior como una serie de tres eventos:

  • elemento de inicio: de
  • Iniciar sección CDATA, valor: Jani
  • Cerrar elemento: desde

Las funciones XML Parser expatriados son parte del núcleo de PHP. No se necesita ninguna instalación para usar estas funciones.


El archivo XML

El archivo XML "note.xml" será utilizado en el ejemplo siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

La inicialización del Analizador XML de Expat

Queremos inicializar el XML Analizador de expatriados en PHP, definir algunos manejadores para diferentes eventos XML, y luego analizar el archivo XML.

Ejemplo

<?php
// Initialize the XML parser
$parser=xml_parser_create();

// Function to use at the start of an element
function start($parser,$element_name,$element_attrs) {
  switch($element_name) {
    case "NOTE" :
    echo "-- Note --<br>";
    break;
    case "TO" :
    echo "To: ";
    break;
    case "FROM" :
    echo "From: ";
    break;
    case "HEADING" :
    echo "Heading: ";
    break;
    case "BODY" :
    echo "Message: ";
  }
}

// Function to use at the end of an element
function stop($parser,$element_name) {
  echo "<br>";
}

// Function to use when finding character data
function char($parser,$data) {
  echo $data;
}

// Specify element handler
xml_set_element_handler($parser,"start","stop");

// Specify data handler
xml_set_character_data_handler($parser,"char");

// Open XML file
$fp=fopen("note.xml","r");

// Read data
while ($data=fread($fp,4096)) {
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
}

// Free the XML parser
xml_parser_free($parser);
?>
Ejecutar ejemplo »

Ejemplo explicó:

  1. Inicializar el analizador XML con la xml_parser_create() la función
  2. Crear funciones para usar con los diferentes controladores de eventos
  3. Añadir el xml_set_element_handler() función para especificar qué función se ejecutará cuando el analizador encuentra las etiquetas de apertura y cierre
  4. Añadir el xml_set_character_data_handler() función para especificar qué función se ejecutará cuando el analizador encuentra los datos de caracteres
  5. Analizar el archivo "note.xml" con el xml_parse() la función
  6. En caso de error, añadir xml_error_string() función para convertir un error XML para una descripción textual
  7. Llame a la xml_parser_free() la función de liberar la memoria asignada con el xml_parser_create() la función

Más PHP XML Analizador de Expat

Para obtener más información acerca de las funciones PHP Expat, visite nuestro PHP XML Analizador de referencia.