Función xml_set_element_handler() de PHP
Definición y uso
La función xml_set_element_handler() establece los procesadores de elementos de inicio y finalización.
Si el procesador se crea con éxito, esta función devuelve true; de lo contrario, devuelve false.
Sintaxis
xml_set_element_handler(parser,start,end)
Parámetros | Descripción |
---|---|
parser | Obligatorio. Define el XML parser a usar. |
start | Obligatorio. Define la función que se llama al principio del elemento. |
end | Obligatorio. Define la función que se llama al final del elemento. |
por start El parámetro especificado debe tener tres parámetros:
Parámetros | Descripción |
---|---|
parser | Obligatorio. Define una variable que contiene el XML parser que llama al procesador. |
name | Obligatorio. Define una variable que contiene el nombre del elemento, que desencadena esta función. |
data | Obligatorio. Define un array que contiene las propiedades del elemento. |
por end El parámetro especificado debe tener tres parámetros:
Parámetros | Descripción |
---|---|
parser | Obligatorio. Define una variable que contiene el XML parser que llama al procesador. |
name | Obligatorio. Define una variable que contiene el nombre del elemento, que desencadena esta función. |
Descripción
start y end Los parámetros también pueden ser un array que contenga referencias a objetos y nombres de métodos.
Ejemplo
<?php $parser=xml_parser_create(); function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Nota --<br />"; break; case "TO": echo "To: "; break; case "FROM": echo "De: "; break; case "HEADING": echo "Título: "; break; case "BODY": echo "Mensaje: "; } } 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("Error XML: %s en la línea %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>
Salida:
-- Nota -- Para: George De: John Título: Recordatorio Mensaje: ¡No olvide la reunión!