Heim > Artikel > Backend-Entwicklung > Über die Grundlagen des PHP XML Expat-Parsers
Der PHP-XML-Expat-Parser spielt eine wichtige Rolle in PHP. In diesem Artikel werden die zugehörigen Wissenspunkte ausführlich erläutert.
Was ist XML?
XML wird zur Beschreibung von Daten verwendet, wobei der Schwerpunkt auf den Daten liegt. XML-Dateien beschreiben die Struktur von Daten.
In XML gibt es keine vordefinierten Tags. Sie müssen Ihre eigenen Tags definieren.
Um mehr über XML zu erfahren, besuchen Sie unser XML-Tutorial.
Was ist Expat?
Um ein XML-Dokument zu lesen und zu aktualisieren – zu erstellen und zu verarbeiten – benötigen Sie einen XML-Parser.
Es gibt zwei grundlegende Arten von XML-Parsern:
Baumbasierte Parser: Dieser Parser wandelt ein XML-Dokument in eine Baumstruktur um. Es analysiert das gesamte Dokument und bietet Zugriff auf Elemente in der Baumstruktur, beispielsweise das Document Object Model (DOM).
Ereignisbasierter Parser: Behandeln Sie ein XML-Dokument als eine Reihe von Ereignissen. Wenn ein bestimmtes Ereignis auftritt, ruft der Parser die -Funktion auf, um es zu verarbeiten.
Der Expat-Parser ist ein ereignisbasierter Parser.
Ereignisbasierte Parser konzentrieren sich auf den Inhalt von XML-Dokumenten und nicht auf deren Struktur. Aus diesem Grund können ereignisbasierte Parser schneller auf Daten zugreifen als baumbasierte Parser.
Sehen Sie sich das folgende XML-Fragment an:
66fd2ada9ebb04d4250c850dc1e3737eJani73e20527c4b39a5569bf640e17eb894e
Der ereignisbasierte Parser meldet das obige XML als eine Reihe von drei Ereignissen:
Startelement: from
Start-CDATA-Abschnitt, Wert: Jani
Schlusselement: from
Das obige XML-Beispiel enthält wohlgeformtes XML. Diese Instanz ist jedoch ungültiges XML, da ihr keine Dokumenttypdeklaration (Document Type Declaration, DTD) zugeordnet ist.
Bei Verwendung des Expat-Parsers macht dies jedoch keinen Unterschied. Expat ist ein Parser, der die Gültigkeit nicht prüft und jegliche DTD ignoriert.
Als ereignisbasierter, nicht validierter XML-Parser ist Expat schnell und leichtgewichtig und somit ideal für PHP-Webanwendungen.
Hinweis: Das XML-Dokument muss wohlgeformt sein, sonst generiert Expat einen Fehler.
Installation
Die XML-Expat-Parser-Funktion ist ein integraler Bestandteil des PHP-Kerns. Für die Nutzung dieser Funktionen ist keine Installation erforderlich.
XML-Datei
Die folgende XML-Datei wird in unserem Beispiel verwendet:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
XML-Parser initialisieren
Wir müssen den XML-Parser in PHP initialisieren, Handler für verschiedene XML-Ereignisse definieren und dann diese XML-Datei analysieren.
Instanz
<?php //Initialize the XML parser $parser=xml_parser_create(); //Function to use at the start of an element function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br>"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } } //Function to use at the end of an element function stop($parser,$element_name) { echo "<br>"; } //Function to use when finding character data function char($parser,$data) { echo $data; } //Specify element handler xml_set_element_handler($parser,"start","stop"); //Specify data handler xml_set_character_data_handler($parser,"char"); //Open XML file $fp=fopen("test.xml","r"); //Read data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } //Free the XML parser xml_parser_free($parser); ?>
Der obige Code gibt Folgendes aus:
-- Hinweis --
An: Tove
Von: Jani
Überschrift: Erinnerung
Nachricht: Vergiss mich dieses Wochenende nicht!
Arbeitsprinzip:
Initialisieren Sie den XML-Parser über die Funktion xml_parser_create()
Erstellen Sie mit verschiedenen Ereignissen VerarbeitungProgrammfunktionen
Fügen Sie die Funktion xml_set_element_handler() hinzu, um zu definieren, welche Funktion ausgeführt wird, wenn der Parser auf die Start- und End-Tags trifft
Fügen Sie die Funktion xml_set_character_data_handler() hinzu, um zu definieren, wann der Parser trifft auf die Start- und End-Tags Welche Funktion wird ausgeführt, wenn Zeichendaten gefunden werden
Parsen Sie die Datei „test.xml“ mit der Funktion xml_parse()
Falls ein Fehler auftritt, fügen Sie die hinzu Funktion xml_error_string() zum Konvertieren des XML-Fehlers in Text Beschreibung
Rufen Sie die Funktion xml_parser_free() auf, um den der Funktion xml_parser_create() zugewiesenen Speicher freizugeben
In diesem Artikel werden die grundlegenden Wissenspunkte erläutert Der PHP-XML-Expat-Parser im Detail und weitere Lernmaterialien sind klar. Folgen Sie der chinesischen PHP-Website, um sie anzusehen.
Verwandte Empfehlungen:
Verwandte Inhalte zur PHP-Datenbank ODBC
Verwandte Kenntnisse der PHP-MySQL-Delete-Anweisung
Verwandte Inhalte zur PHP-MySQL-Update-Anweisung
Das obige ist der detaillierte Inhalt vonÜber die Grundlagen des PHP XML Expat-Parsers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!