xml_set_default_handler()
⚠️ Veraltet: Diese Funktion ist seit PHP 8.0.0 veraltet. Die Expat XML Parser-Erweiterung gilt als veraltet. Für moderne PHP-Entwicklung wird empfohlen, stattdessen
DOMDocumentoderSimpleXMLzu verwenden.
Die Funktion xml_set_default_handler() ist eine integrierte PHP-Funktion, die zur Expat XML Parser-Erweiterung gehört. Sie legt eine benutzerdefinierte Funktion als Standard-Handler für Zeichendaten fest, die nicht von xml_set_character_data_handler() erfasst werden. Dies ist nützlich, wenn Sie rohen XML-Textinhalt verarbeiten müssen, ohne einen spezifischen Zeichendaten-Handler zu definieren.
Syntax
Die Syntax der xml_set_default_handler()-Funktion lautet wie folgt:
xml_set_default_handler(resource $parser, callable $handler): boolWobei $parser die von xml_parser_create() erstellte XML-Parser-Ressource ist und $handler der Name der benutzerdefinierten Funktion, die die XML-Zeichendaten verarbeitet. Die Funktion gibt bei Erfolg true und bei einem Fehler false zurück.
Anwendungsbeispiele
Schauen wir uns ein praktisches Beispiel für die Verwendung von xml_set_default_handler() in PHP an.
Beispiel: Festlegen einer Standard-Handler-Funktion
Angenommen, Sie haben einen XML-String, den Sie mit dem Expat XML Parser parsen möchten. Sie können xml_parser_create() verwenden, um einen neuen Parser zu erstellen, einen Standard-Handler festzulegen und anschließend die Daten zu parsen:
Festlegen einer Standard-Handler-Funktion in PHP
function handle_default($parser, $data) {
echo "Default handler received: " . trim($data) . "\n";
}
$xml_parser = xml_parser_create();
xml_set_default_handler($xml_parser, "handle_default");
$xml_data = "<root>Hello World</root>";
if (xml_parse($xml_parser, $xml_data, true) === false) {
echo "Parse error: " . xml_error_string(xml_get_error_code($xml_parser)) . "\n";
}
xml_parser_free($xml_parser);Dieser Code erstellt einen Expat-Parser mit xml_parser_create(). Anschließend wird die Funktion handle_default() festgelegt, um Zeichendaten aufzufangen, die nicht von xml_set_character_data_handler() verarbeitet werden. Die Funktion xml_parse() verarbeitet den XML-String und löst den Standard-Handler für den Textinhalt aus. Die hinzugefügte Fehlerüberprüfung nutzt xml_get_error_code() und xml_error_string(), um Parsing-Fehler abzufangen und anzuzeigen. Abschließend räumt xml_parser_free() die Parser-Ressource auf.
Fazit
In diesem Artikel haben wir die PHP-Funktion xml_set_default_handler() und deren Zusammenspiel mit der Expat XML Parser-Erweiterung besprochen. Wir haben die Syntax erläutert, ihre Rolle bei der Verarbeitung von Zeichendaten geklärt und ein vollständiges Beispiel mit Fehlerbehandlung bereitgestellt. Beachten Sie, dass die Expat-Erweiterung veraltet ist und seit PHP 8.0.0 als deprecated gilt. Durch die Verwendung von xml_set_default_handler() können Sie rohen XML-Textinhalt in Ihren PHP-Anwendungen effizient verarbeiten, wobei moderne Projekte jedoch DOMDocument oder SimpleXML bevorzugen sollten.
Praxis
Was bewirkt der XML-Standard-Handler in PHP?