intérprete PHP XML Expat
Incorporado en PHP Expat analizador hace posible el procesamiento de documentos XML.
¿Qué es XML?
XML se utiliza para describir los datos y centrarse en lo que los datos Sí. archivo XML describe la estructura de los datos.
En XML, no hay etiquetas predefinidas. Debe definir sus propias etiquetas.
Para obtener más información acerca de XML, visite nuestro tutorial XML .
Lo que sí Expat?
Para leer y actualizar - crear y proceso - un documento XML, necesita un analizador XML.
Hay dos tipos básicos de analizadores XML:
- analizador basado en el árbol: Este analizador transforma un documento XML en una estructura de árbol. Analiza todo el documento, y proporciona acceso a los elementos en el árbol, como el Document Object Model (DOM).
- basada en eventos analizador: El documento XML como una serie de eventos. Cuando se produce un evento específico, el analizador llamará a la función de procesar.
analizador Expat es analizador basado en eventos.
basada en eventos analizador de enfoque en el contenido de un documento XML, en lugar de su estructura. Debido a esto, analizador basado en eventos puede acceder a los datos más rápido que analizador basado en árbol.
Considere el siguiente fragmento de XML:
analizador basado en eventos informa el XML anterior como una serie de tres eventos:
- elemento de inicio: de
- Iniciar la sección CDATA, valor: Jani
- Primer elemento: desde
XML de ejemplo anterior contiene XML bien formado. Pero este ejemplo no es XML válido, debido a que la declaración de tipo de documento (DTD) no está asociado con él.
Sin embargo, cuando se utiliza el analizador Expat, esto no hace ninguna diferencia. analizador Expat no se verifica la validez, ignore cualquier DTD.
Como no validar-analizador basado en eventos, XML, Expat rápido y ligero, muy adecuado para aplicaciones Web PHP.
Nota: El documento XMLdebe estar bien formado, de lo contrario Expat generará un error.
instalar
funciones XML parser Expat forman parte del núcleo de PHP. Necesita ninguna instalación para usar estas funciones.
archivo XML
El archivo XML siguiente será utilizado en nuestro ejemplo:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Inicializar el intérprete XML
Queremos iniciar el analizador XML en PHP, definir procesador para diferentes eventos XML, y luego analizar el archivo XML.
Ejemplos
//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("test.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);
?>
El código anterior es la salida:
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
Cómo funciona:
- Por xml_parser_create () función inicializa el analizador XML
- Crear con diferente función de controlador de eventos
- Añadir xml_set_element_handler () para definir, qué función debe realizar cuando el analizador encuentra las etiquetas de inicio y fin
- Añadir xml_set_character_data_handler () para definir, qué función debe realizar cuando el analizador encuentra datos de carácter
- Por xml_parse () para analizar el archivo "test.xml"
- En caso de que haya un error, a continuación, añadir xml_error_string () para convertir texto de descripción de error XML
- xml_parser_free () la función de llamar para liberar la memoria asignada a xml_parser_create función ()
Más información PHP Expat analizador
Para obtener más información acerca de las funciones PHP Expat, visite nuestro PHP XML Manual de Referencia del Analizador .