PHP xml_set_element_handler()Funciones


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

Definición y uso

La función xml_set_element_handler() especifica las funciones que se llaman al inicio y al final de los elementos en un documento XML.

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

Sintaxis

xml_set_element_handler(parser,start,end)

Parámetros Descripción
parser Obligatorio. Especifica el analizador XML que se va a utilizar.
start Obligatorio. Especifica la función que se llama al inicio del elemento.
end Obligatorio. Especifica la función que se llama al final del elemento.

La función especificada por el parámetro "start" debe tener tres parámetros:

Parámetros Descripción
parser Obligatorio. Especifica una variable que contenga el analizador XML que invoca al controlador.
name Obligatorio. Especifica una variable que contenga el nombre del elemento en el archivo XML (como cadena), que activa esta función.
data Obligatorio. Especifica un array que contenga los atributos del elemento en el archivo XML (como cadenas).

La función especificada por el parámetro "end" debe tener dos parámetros:

Parámetros Descripción
parser Obligatorio. Especifica una variable que contenga el analizador XML que invoca al controlador.
name Obligatorio. Especifica una variable que contenga el nombre del elemento en el archivo XML (como cadena), que activa esta función.


Consejos y notas

Nota:Los parámetros start y end pueden ser un array que contenga una referencia a un objeto y un nombre de método.


Ejemplo

<?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 es la siguiente:

-- 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