Analizador PHP XML Expatriados
El XML Expat Parser incorporado hace posible procesar documentos XML en PHP.
El analizador de expatriados XML
El analizador 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: desde
- Iniciar sección CDATA, valor: Jani
- Cerrar elemento: desde
Las funciones de XML Expat Parser son parte del núcleo de PHP. No se necesita instalación para usar estas funciones.
El archivo XML
El archivo XML "note.xml" se utilizará en el siguiente ejemplo:
<?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>
Inicialización del analizador XML Expat
Queremos inicializar XML Expat Parser en PHP, definir algunos controladores 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);
?>
Ejemplo explicado:
- Inicialice el analizador XML con la
xml_parser_create()
función - Crear funciones para usar con los diferentes controladores de eventos
- Agregue la
xml_set_element_handler()
función para especificar qué función se ejecutará cuando el analizador encuentre las etiquetas de apertura y cierre - Agregue la
xml_set_character_data_handler()
función para especificar qué función se ejecutará cuando el analizador encuentre datos de caracteres - Analizar el archivo "note.xml" con la
xml_parse()
función - En caso de error, agregue
xml_error_string()
la función para convertir un error XML en una descripción textual - Llame a la
xml_parser_free()
función para liberar la memoria asignada con laxml_parser_create()
función
Más analizador PHP XML Expat
Para obtener más información sobre las funciones de PHP Expat, visite nuestra Referencia de analizador PHP XML .