<?php
/**
* Artikel Titel: xml_set_default_handler Wie man mit Funktionen umgeht XML Im Dokument CDATA Knoten?
*/
?>
<hr>
### xml_set_default_handler Wie man mit Funktionen umgeht XML Im Dokument CDATA Knoten?
existieren PHP Mitte,`xml_set_default_handler` Funktionen sind ein sehr nützliches Werkzeug,Es ermöglicht Entwicklern XML Analyse过程Mitte遇到von默认事件设置处理程序。Besonders,Es beinhaltet, wie man damit umgeht XML Im Dokument CDATA Knoten。In diesem Artikel wird detailliert vorgestellt, wie es verwendet wird `xml_set_default_handler` Funktionen zu handhaben CDATA Knoten。
#### Was ist CDATA Knoten?
existieren XML 文档Mitte,CDATA(Character Data)Knoten是一种特殊von文本Knoten,Ermöglicht, Zeichendaten zu enthalten, die nicht analysiert werden müssen。CDATA Die Startmarke des Gebiets ist `<![CDATA[`,Und die Endmarke ist `]]>`。existieren这个区域内,Alle Charaktere,Einschließlich `<` Und `&` Solche Sonderzeichen,Wird so gehandhabt wie es ist,Nicht betrachtet als XML Elementanalyse。
Zum Beispiel,Das Folgende ist eine enthalten CDATA von XML Beispiel:
```xml
<note>
<to>Tove</to>
<from>Jani</from>
<message><![CDATA[This is a <message> with some <text> that is not parsed]]></message>
</note>
In diesem Beispiel,
Die Funktion xml_set_default_handler ist eine wichtige Methode der XMLParser -Klasse in PHP. Es wird verwendet, um eine Standardverarbeitungsfunktion für den XML -Parser festzulegen. Dieser Handler wird aufgerufen, wenn sie auf alle nicht spezifischen Arten von Knoten im XML-Dokument stoßen. Die Standardverarbeitungsfunktion erfasst Textknoten, CDATA -Knoten, Kommentare usw. im Dokument.
Die Funktion ist wie folgt definiert:
bool xml_set_default_handler ( resource $parser, callable $handler )
$ parser : Der Ressourcenhandle des XML -Parsers.
$ Handler : Eine Rückruffunktion, mit der der Standardknoten verarbeitet wird. Diese Funktion empfängt zwei Parameter: Ereignisart und entsprechende Textdaten.
Wenn ein XML -Parser auf einen CDATA -Knoten trifft, besteht das Standardverhalten darin, den CDATA -Inhalt als einfacher Text zu behandeln. Wir können jedoch benutzerdefinierte Standardhandler für den Parser über XML_Set_Default_handler festlegen, um diese Inhalte körniger zu verarbeiten.
Hier ist ein einfaches Beispiel, das zeigt, wie Sie XML_Set_Default_handler verwenden, um CDATA -Knoten in XML zu verarbeiten:
<?php
$xml_data = <<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<message><![CDATA[This is a <message> with some <text> that is not parsed]]></message>
</note>
XML;
function default_handler($parser, $data) {
// 输出处理vonCDATAInhalt
echo "CDATA Inhalt: " . htmlspecialchars($data) . "\n";
}
// erstellen XML Parser
$parser = xml_parser_create();
// Legen Sie die Standardverarbeitungsfunktion fest
xml_set_default_handler($parser, 'default_handler');
// Analyse XML Daten
xml_parse($parser, $xml_data);
// 释放Parser
xml_parser_free($parser);
?>
Parser erstellen : Erstellen Sie einen XML -Parser mit der Funktion xml_parser_create () .
Legen Sie die Verarbeitungsfunktion fest : Setzen Sie die Funktion default_handler als Standardverarbeitungsfunktion des Parsers über xml_set_default_handler . Diese Funktion wird aufgerufen, wenn der Parser auf einen Knoten des Typs trifft, der nicht explizit angegeben ist.
Parsing XML -Daten analysieren : Verwenden Sie XML_PARSE (), um XML -Daten zu analysieren. Weil in XML
Ausgabeverarbeitungsergebnis : Die Funktion default_handler gibt den CDATA -Inhalt im HTML -Entitätsformat aus.
Nach dem Ausführen des obigen Codes ist die Ausgabe:
CDATA Inhalt: This is a <message> with some <text> that is not parsed
Dies zeigt, dass der XML -Parser den Inhalt im CDATA -Knoten erfolgreich erfasst und an unsere benutzerdefinierte Verarbeitungsfunktion übergab. Beachten Sie, dass Sonderzeichen in CDATA (z. B. <und> ) in HTML -Entitäten konvertiert werden, um Parsenfehler zu vermeiden.
Durch die Funktion XML_Set_Default_handler können Entwickler verschiedene Inhalte in XML -Dokumenten flexibel verarbeiten, einschließlich CDATA -Knoten. Nach dem Binden eines benutzerdefinierten Handlers an den Parser können Sie sicherstellen, dass alle nicht explizit definierten Knoten ordnungsgemäß verarbeitet werden, insbesondere wenn der CDATA -Knoten spezielle Zeichen enthält, die die XML -Parsen beeinträchtigen können. Diese Methode bietet mehr Kontroll- und Anpassungsfunktionen für die XML -Parsen und ist eines der praktischsten Tools zur Verarbeitung von XML -Daten.