Funzione xml_set_element_handler() di PHP

Definizione e uso

La funzione xml_set_element_handler() stabilisce i gestori degli elementi di inizio e fine.

Se il gestore viene creato con successo, la funzione restituirà true; altrimenti restituirà false.

Sintassi

xml_set_element_handler(parser,inizio,fine)
Parametri Descrizione
parser Obbligatorio. Specifica l'elaboratore XML da utilizzare.
inizio Obbligatorio. Specifica la funzione chiamata all'inizio dell'elemento.
fine Obbligatorio. Specifica la funzione chiamata alla fine dell'elemento.

Da inizio Il parametro specificato deve avere tre parametri:

Parametri Descrizione
parser Obbligatorio. Specifica una variabile che contiene l'elaboratore XML per la解析.
nome Obbligatorio. Specifica una variabile che contiene il nome dell'elemento, che scatena la funzione.
data Obbligatorio. Specifica un array che contiene le proprietà dell'elemento.

Da fine Il parametro specificato deve avere tre parametri:

Parametri Descrizione
parser Obbligatorio. Specifica una variabile che contiene l'elaboratore XML per la解析.
nome Obbligatorio. Specifica una variabile che contiene il nome dell'elemento, che scatena la funzione.

Descrizione

inizio e fine I parametri possono anche essere un array che contiene riferimenti agli oggetti e i nomi dei metodi.

Esempio

<?php
$parser=xml_parser_create();
function start($parser,$element_name,$element_attrs)
  {
  switch($element_name)
    {
    case "NOTE":
    echo "-- Note --<br />";
    break; 
    case "A":
    echo "A: ";
    break; 
    case "FROM":
    echo "Da: ";
    break; 
    case "HEADING":
    echo "Intestazione: ";
    break; 
    case "BODY":
    echo "Messaggio: ";
    }
  }
funzione stop($parser,$element_name)
  {
  echo "<br />";
  }
funzione 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("Errore XML: %s alla riga %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>

Output:

-- Note --
A: George
Da: John
Intestazione: Promemoria
Messaggio: Non dimenticare l'incontro!