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:

<from>Jani</from>

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:

  1. Durch xml_parser_create () Funktion initialisiert den XML-Parser
  2. Erstellen Sie mit verschiedenen Event-Handler-Funktion
  3. In xml_set_element_handler () Funktion zu definieren, die zur Durchführung funktionieren, wenn der Parser die Start- und End-Tags begegnet
  4. Hinzufügen xml_set_character_data_handler () Funktion zu definieren, die auszuführen funktionieren, wenn der Parser Zeichendaten begegnet
  5. Durch xml_parse () Funktion, um die Datei "test.xml" zu analysieren
  6. Falls es ein Fehler ist, dann fügen Sie xml_error_string () Funktion, um XML-Fehlertext Beschreibung konvertieren
  7. 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 .

PHP XML-Parser Expat
10/30