Das beste PHP XML-Parser Expat-Tutorial im Jahr 2024. In diesem Tutorial können Sie
Was ist XML?,Was für Expat ja?,installieren,XML-Datei,Initialisieren Sie den XML-Parser,Mehr Informationen PHP Expat-Parser, lernen
PHP XML-Parser Expat
Built-in PHP Expat-Parser macht es möglich, XML-Dokumente zu verarbeiten.
Was ist XML?
XML wird verwendet, um Daten zu beschreiben und zu Ja, welche Daten zu konzentrieren. XML-Datei beschreibt die Struktur der Daten.
In XML gibt es keine vordefinierten Tags. Sie müssen Ihre eigenen Tags definieren.
Um mehr über XML zu erfahren, besuchen Sie bitte unsere XML - Tutorial .
Was für Expat ja?
Zum Lesen und Update - Erstellung und Verarbeitung - ein XML-Dokument, müssen Sie einen XML-Parser.
Es gibt zwei Grundtypen von XML-Parser:
- Baum-basierte Parser: Dieser Parser wandelt ein XML-Dokument in eine Baumstruktur. Er analysiert das gesamte Dokument, und bietet Zugriff auf die Elemente in dem Baum, wie das Document Object Model (DOM).
- Ereignisbasierte Parser: Das XML-Dokument als eine Reihe von Veranstaltungen. Wenn ein bestimmtes Ereignis eintritt, wird der Parser die Funktion aufrufen zu verarbeiten.
Expat-Parser ist ereignisbasierten Parser.
Ereignisbasierter Parser Fokus auf den Inhalt eines XML-Dokuments, und nicht deren Struktur. Wegen dieses ereignisbasierter Parser kann Daten zugreifen schneller als Baum-basierte Parser.
Betrachten Sie das folgende XML-Fragment:
Ereignisbasierte Parser meldet die XML oben als eine Serie von drei Veranstaltungen:
- Startelement: aus
- Starten Sie CDATA-Abschnitt, Wert: Jani
- Schließen Element: von
XML-Beispiel oben enthält wohlgeformte XML. Aber dieses Beispiel ist nicht gültig XML, weil die Dokumenttypdeklaration (DTD) ist nicht mit ihm verbunden ist.
Wenn jedoch die Expat-Parser verwenden, macht dies keinen Unterschied. Expat-Parser ist nicht auf Gültigkeit geprüft, jede DTD ignorieren.
Als Event-basierte, nicht-validierenden XML-Parser Expat schnell und leicht, sehr geeignet für PHP-Webanwendungen.
Hinweis: XML - Dokument muss wohlgeformt sein , sonst Expat wird ein Fehler generiert.
installieren
XML Expat-Parser-Funktionen sind Bestandteil von PHP. Keine Installation notwendig, um diese Funktionen zu nutzen.
XML-Datei
Die XML-Datei unten wird in unserem Beispiel verwendet werden:
<?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>
Initialisieren Sie den XML-Parser
Wir wollen den XML-Parser in PHP zu initialisieren, definieren Prozessor für verschiedene XML-Ereignisse, und dann die XML-Datei analysieren.
Beispiele
<?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 ausgeben wird:
-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
Wie es funktioniert:
- Durch xml_parser_create () Funktion initialisiert den XML-Parser
- Erstellen Sie mit verschiedenen Event-Handler-Funktion
- In xml_set_element_handler () Funktion zu definieren, die zur Durchführung funktionieren, wenn der Parser die Start- und End-Tags begegnet
- Hinzufügen xml_set_character_data_handler () Funktion zu definieren, die auszuführen funktionieren, wenn der Parser Zeichendaten begegnet
- Durch xml_parse () Funktion, um die Datei "test.xml" zu analysieren
- Falls es ein Fehler ist, dann fügen Sie xml_error_string () Funktion, um XML-Fehlertext Beschreibung konvertieren
- Rufen Sie xml_parser_free () Funktion zur Freigabe xml_parser_create () Funktionsspeicher zugewiesen
Mehr Informationen PHP Expat-Parser
Weitere Informationen über die Funktionen PHP Expat, besuchen Sie unsere PHP XML - Parser - Referenzhandbuch .