Aktueller Standort: Startseite> Neueste Artikel> Wie handelt es sich bei der Funktion XML_SET_DEFAULT_HANDLER CDATA -Knoten in XML -Dokumenten?

Wie handelt es sich bei der Funktion XML_SET_DEFAULT_HANDLER CDATA -Knoten in XML -Dokumenten?

M66 2025-06-22
<?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, Inhalt im Tag mit einigen Das ist nicht analysiert]]> wird als normaler Text verarbeitet.

Einführung in die Funktion xml_set_default_handler

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.

Wie behandle ich CDATA -Knoten über xml_set_default_handler ?

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

Analyseverfahrenanalyse

  1. Parser erstellen : Erstellen Sie einen XML -Parser mit der Funktion xml_parser_create () .

  2. 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.

  3. Parsing XML -Daten analysieren : Verwenden Sie XML_PARSE (), um XML -Daten zu analysieren. Weil in XML Das Tag enthält den CDATA -Knoten, und der Parser übergibt den Inhalt des Knotens an die Funktion default_handler .

  4. Ausgabeverarbeitungsergebnis : Die Funktion default_handler gibt den CDATA -Inhalt im HTML -Entitätsformat aus.

Ergebnisse Ausgabe

Nach dem Ausführen des obigen Codes ist die Ausgabe:

 CDATA Inhalt: This is a &lt;message&gt; with some &lt;text&gt; 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.

Zusammenfassen

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.