Gli ultimi tutorial di sviluppo web
 

PHP xml_set_element_handler() Function


<Completa PHP XML

Definizione e l'utilizzo

Il xml_set_element_handler() funzione specifica funzioni da chiamato all'inizio e alla fine di un elemento nel documento XML.

Questa funzione restituisce TRUE se ha successo, oppure FALSE in caso di fallimento.

Sintassi

xml_set_element_handler(parser,start,end)

Parametro Descrizione
parser Necessario. Specifica parser XML da usare
start Necessario. Specifica una funzione per essere chiamato all'inizio di un elemento
end Necessario. Specifica una funzione per essere chiamato alla fine di un elemento

La funzione specificata dal "start" parametro deve avere tre parametri:

Parametro Descrizione
parser Necessario. Specifica una variabile che contiene il parser XML chiamante il gestore
name Necessario. Specifica una variabile che contiene il nome degli elementi, che attiva questa funzione, dal file XML come una stringa
data Necessario. Specifica un array contenente gli elements attributi dal file XML come una stringa

La funzione specificata dalla "end" parametro deve avere due parametri:

Parametro Descrizione
parser Necessario. Specifica una variabile che contiene il parser XML chiamante il gestore
name Necessario. Specifica una variabile che contiene il nome degli elementi, che attiva questa funzione, dal file XML come una stringa

Suggerimenti e Note

Note: I parametri di inizio e fine possono anche essere un vettore contenente un riferimento oggetto e un nome di metodo.


Esempio

<?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);
?>

L'output del codice precedente sarà:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

<Completa PHP XML