PHP xml_set_element_handler()Funktionen


PHP XML 参考手册Vollständiges PHP XML-Referenzhandbuch

Definition und Verwendung

Die Funktion xml_set_element_handler() legt die Funktionen fest, die am Anfang und am Ende von Elementen in einem XML-Dokument aufgerufen werden.

Bei Erfolg gibt diese Funktion TRUE zurück. Bei einem Fehler gibt sie FALSE zurück.

Syntax

xml_set_element_handler(parser,start,end)

Parameters Beschreibung
parser Erforderlich. Gibt den zu verwendenden XML-Parser an.
start Erforderlich. Gibt die Funktion an, die aufgerufen wird, wenn ein Element beginnt.
end Erforderlich. Gibt die Funktion an, die aufgerufen wird, wenn ein Element endet.

Die durch den Parameter "start" angegebene Funktion muss drei Parameter haben:

Parameters Beschreibung
parser Erforderlich. Gibt eine Variable an, die den XML-Parser enthält, der den Handler aufruft.
name Erforderlich. Gibt eine Variable an, die den Namen des Elements (als Zeichenfolge) in der XML-Datei enthält, das die Funktion auslöst.
data Erforderlich. Gibt ein Array an, das die Attribute des Elements (als Zeichenfolgen) in der XML-Datei enthält.

Die durch den Parameter "end" angegebene Funktion muss zwei Parameter haben:

Parameters Beschreibung
parser Erforderlich. Gibt eine Variable an, die den XML-Parser enthält, der den Handler aufruft.
name Erforderlich. Gibt eine Variable an, die den Namen des Elements (als Zeichenfolge) in der XML-Datei enthält, das die Funktion auslöst.


Tipps und Hinweise

Hinweis:Die Parameter start und end können ein Array sein, das eine Objektreferenz und einen Methodennamen enthält.


Beispiel

<?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 "Von: ";
break;
case "HEADING":
echo "Überschrift: ";
break;
case "BODY":
echo "Nachricht: ";
}
}

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

Die Ausgabe des obigen Codes ist unten dargestellt:

-- Notiz --
An: Tove
Von: Jani
Überschrift: Erinnerung
Nachricht: Vergiss mich dieses Wochenende nicht!


PHP XML 参考手册Vollständiges PHP XML-Referenzhandbuch Andere Erweiterungen