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!