Zum Inhalt springen

xml_set_character_data_handler()

Die Funktion xml_set_character_data_handler() ist eine integrierte PHP-Funktion, die eine benutzerdefinierte Funktion als Handler für Zeichendaten in einem XML-Parser festlegt. Sie gehört zur veralteten xml-Erweiterung (basierend auf dem Expat-Parser) und wird verwendet, um eine benutzerdefinierte Funktion zum Verarbeiten von Zeichendaten während der streambasierten XML-Parsing festzulegen.

Diese Funktion ist nützlich, wenn Sie Zeichendaten während des Parsens manipulieren müssen, z. B. um Leerzeichen zu entfernen oder andere Transformationen auf den extrahierten Text anzuwenden.

Syntax

php
xml_set_character_data_handler($parser, $handler)

Dabei ist $parser die XML-Parser-Ressource und $handler der Name der benutzerdefinierten Funktion, die die Zeichendaten verarbeitet. Beachten Sie, dass die Handler-Funktion drei Argumente empfängt: $parser, $data und $length.

Anwendungsbeispiele

Werfen wir einen Blick auf ein praktisches Beispiel zur Verwendung von xml_set_character_data_handler() in PHP.

Beispiel: Festlegen einer Handler-Funktion für Zeichendaten

Angenommen, Sie möchten einen XML-String mit der veralteten xml-Erweiterung parsen. Sie können xml_parser_create() verwenden, um einen neuen Parser zu erstellen, einen Handler für Zeichendaten mit xml_set_character_data_handler() festlegen und anschließend die Daten parsen:

Festlegen einer Handler-Funktion für Zeichendaten in PHP

php
function handle_character_data($parser, $data, $length) {
    // Trim whitespace and output the character data
    echo trim($data);
}

$xml_parser = xml_parser_create();
xml_set_character_data_handler($xml_parser, "handle_character_data");

$xml_data = '<root><item>Hello World</item></root>';
xml_parse($xml_parser, $xml_data, true);

xml_parser_free($xml_parser);

Dieser Code erstellt einen neuen XML-Parser mit xml_parser_create(). Anschließend wird die benutzerdefinierte Funktion handle_character_data() festgelegt, um die Zeichendaten in der XML-Datei zu verarbeiten. Die Funktion empfängt die Parser-Ressource, den Zeichendaten-String und die Länge des Datenchunks. Abschließend verarbeitet xml_parse() das XML, und xml_parser_free() räumt die Parser-Ressource auf.

Fazit

In diesem Artikel haben wir die PHP-Funktion xml_set_character_data_handler() und ihre Funktionsweise als Callback für Zeichendaten in der veralteten, Expat-basierten xml-Erweiterung besprochen. Wir haben die Syntax erläutert und ein vollständiges Parsing-Beispiel bereitgestellt. Beachten Sie, dass es sich um eine veraltete API handelt; für neue Projekte sollten Sie moderne Alternativen wie DOMDocument oder SimpleXML in Betracht ziehen. Bei der Arbeit mit der xml-Erweiterung ermöglicht diese Funktion das Manipulieren von Zeichendaten, das Entfernen von Leerzeichen oder das Anwenden von Transformationen während des streambasierten Parsings.

Übungen

Was macht die Funktion 'xml_set_character_data_handler()' in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.