<Referencia completa de PHP XML
Definición y Uso
El xml_set_element_handler() función especifica las funciones que se llamará al comienzo y al final de un elemento en el documento XML.
Esta función devuelve TRUE en caso de éxito, en caso de fallo.
Sintaxis
xml_set_element_handler(parser,start,end)
Parámetro | Descripción |
---|---|
parser | Necesario. Especifica analizador XML para utilizar |
start | Necesario. Especifica una función a ser llamada en el inicio de un elemento |
end | Necesario. Especifica una función a ser llamada en el extremo de un elemento |
La función especificada por el "start" parámetro debe tener tres parámetros:
Parámetro | Descripción |
---|---|
parser | Necesario. Especifica una variable que contiene el analizador XML que llama al gestor |
name | Necesario. Especifica una variable que contiene el nombre de los elementos, que activa esta función, desde el archivo XML como una cadena |
data | Necesario. Especifica una matriz que contiene los elements los atributos del archivo XML como una cadena |
La función especificada por el "end" parámetro debe tener dos parámetros:
Parámetro | Descripción |
---|---|
parser | Necesario. Especifica una variable que contiene el analizador XML que llama al gestor |
name | Necesario. Especifica una variable que contiene el nombre de los elementos, que activa esta función, desde el archivo XML como una cadena |
Notas y sugerencias
Note: Los parámetros de inicio y fin también puede ser una matriz que contiene una referencia de 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 será:
-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
<Referencia completa de PHP XML