W3docs

xml_set_default_handler()

Die Funktion xml_set_default_handler() setzt eine benutzerdefinierte Funktion als Standard-Handler für einen XML-Parser in PHP.

⚠️ Veraltet: Diese Funktion ist seit PHP 8.0.0 als veraltet markiert. Die Expat XML Parser-Erweiterung gilt als veraltet. Für moderne PHP-Entwicklung wird empfohlen, stattdessen DOMDocument oder SimpleXML zu verwenden.

Die Funktion xml_set_default_handler() ist eine in PHP integrierte Funktion, die zur Expat XML Parser-Erweiterung gehört. Sie setzt eine benutzerdefinierte Funktion als Standard-Handler für Zeichendaten, die nicht von xml_set_character_data_handler() erfasst werden. Dies ist nützlich, wenn Sie rohe XML-Textinhalte verarbeiten müssen, ohne einen spezifischen Zeichendaten-Handler zu definieren.

Syntax

Die Syntax der Funktion xml_set_default_handler() lautet wie folgt:

xml_set_default_handler(resource $parser, callable $handler): bool

Dabei ist $parser die XML-Parser-Ressource, die durch xml_parser_create() erstellt wurde, und $handler ist der Name der benutzerdefinierten Funktion, die die XML-Zeichendaten verarbeitet. Die Funktion gibt bei Erfolg true oder bei einem Fehler false zurück.

Verwendungsbeispiele

Schauen wir uns ein praktisches Beispiel für die Verwendung von xml_set_default_handler() in PHP an.

Beispiel: Einen Standard-Handler festlegen

Angenommen, Sie haben einen XML-String, den Sie mit dem Expat XML Parser analysieren möchten. Sie können xml_parser_create() verwenden, um einen neuen Parser zu erstellen, einen Standard-Handler zu setzen und anschließend die Daten zu parsen:

Einen Standard-Handler in PHP festlegen

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() so gesetzt, dass sie Zeichendaten erfasst, die nicht von xml_set_character_data_handler() verarbeitet werden. Die Funktion xml_parse() verarbeitet den XML-String und löst dabei den Standard-Handler für den Textinhalt aus. Die hinzugefügte Fehlerprüfung verwendet xml_get_error_code() und xml_error_string(), um Parsing-Fehler zu erkennen und anzuzeigen. Abschließend gibt xml_parser_free() die Parser-Ressource frei.

Fazit

In diesem Artikel haben wir die PHP-Funktion xml_set_default_handler() und ihre Funktionsweise mit der Expat XML Parser-Erweiterung besprochen. Wir haben die Syntax erläutert, ihre Rolle bei der Verarbeitung von Zeichendaten klargestellt und ein vollständiges Beispiel mit Fehlerbehandlung bereitgestellt. Beachten Sie, dass die Expat-Erweiterung als veraltet gilt und seit PHP 8.0.0 als veraltet markiert ist. Durch die Verwendung von xml_set_default_handler() können Sie rohe XML-Textinhalte in Ihren PHP-Anwendungen effizient verarbeiten, obwohl moderne Projekte DOMDocument oder SimpleXML bevorzugen sollten.

Übungen

Übung
Was macht der XML-Standard-Handler in PHP?
Was macht der XML-Standard-Handler in PHP?
Was this page helpful?