PHP xml_parse()Funciones


PHP XML 参考手册Manual de referencia completo de PHP XML

Definición y uso

La función xml_parse() analiza un documento XML.

Si tiene éxito, la función devuelve TRUE. Si falla, devuelve FALSE.

Sintaxis

xml_parse(parser,xml,end)

Parámetros Descripción
parser Obligatorio. Especifica el analizador XML a utilizar.
xml Obligatorio. Especifica los datos XML a analizar.
end Opcional. Si este parámetro es TRUE, los datos en el parámetro "xml" son el último fragmento de datos en el análisis actual.

Nota:Los errores de entidad se informan al final del análisis y solo se muestran si el parámetro "end" es TRUE.



Consejos y notas

Consejo:Para crear un analizador XML, utilice la función xml_parser_create().


Ejemplo 1

Archivo XML

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

Código PHP

<?php
$parser=xml_parser_create();

function char($parser,$data)
{
echo $data;
}

xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

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)));
}

xml_parser_free($parser);
?>

La salida del código anterior se muestra a continuación:

Tove Jani Reminder Don't forget me this weekend!


Ejemplo 2

Usando el mismo archivo XML pero mostrando los datos XML de una manera diferente:

<?php
$parser=xml_parser_create();

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 stop($parser,$element_name)
{
echo "<br />";
}

function char($parser,$data)
{
echo $data;
}

xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

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)));
}

xml_parser_free($parser);
?>

La salida del código anterior se muestra a continuación:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!


PHP XML 参考手册Manual de referencia completo de PHP XML Otras extensiones