In PHP ist das Parsen von XML -Dateien eine häufige Möglichkeit, den Datenaustausch- und Konfigurationsdateien zu verarbeiten. Die Funktion xml_parse () ist eine von PHP bereitgestellte ereignisgesteuerte XML-Parsingmethode. Durch Kombination anderer Parserfunktionen können Elemente und Attribute in XML -Dateien gelesen werden. In diesem Artikel werden Sie Schritt für Schritt vorgenommen, um zu verstehen, wie Sie XML_PARSE () verwenden, um XML zu analysieren und den Elementinhalt und die Attributinformationen zu extrahieren.
Wir bereiten zuerst ein einfaches XML -Beispiel für Parsen -Übungen vor. Angenommen, die Datei heißt Beispiel.xml , ist der Inhalt wie folgt:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="101" genre="fiction">
<title>PHP Erste Schritte</title>
<author>Zhang San</author>
</book>
<book id="102" genre="programming">
<title>Eingehendes Verständnis PHP</title>
<author>Li Si</author>
</book>
</books>
Das XML Parsing von PHP verwendet einen ereignisbasierten Ansatz. Wir müssen mehrere Handler definieren und an den Parser binden.
<?php
$parser = xml_parser_create();
function startElement($parser, $name, $attrs) {
echo "Element starten: $name\n";
if (!empty($attrs)) {
echo "Eigentum:\n";
foreach ($attrs as $key => $value) {
echo " - $key = $value\n";
}
}
}
function endElement($parser, $name) {
echo "Endelement: $name\n";
}
function characterData($parser, $data) {
$data = trim($data);
if (!empty($data)) {
echo "Inhalt: $data\n";
}
}
// Binden Sie die Verarbeitungsfunktion
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
Jetzt lesen wir die Datei von Beispiel.xml und analysieren sie mit einem Parser:
$fp = fopen("example.xml", "r");
if (!$fp) {
die("Die Datei kann nicht geöffnet werden");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($parser, $data, feof($fp))) {
die(sprintf(
"XML Fehler: %s Im %d OK",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)
));
}
}
xml_parser_free($parser);
fclose($fp);
?>
Nach dem Ausführen des Skripts gibt das Terminal das Start und Ende jedes Elements, die Attribute und Werte wiederum aus. Zum Beispiel:
Element starten: BOOKS
Element starten: BOOK
Eigentum:
- ID = 101
- GENRE = fiction
Element starten: TITLE
Inhalt: PHP Erste Schritte
Endelement: TITLE
Element starten: AUTHOR
Inhalt: Zhang San
Endelement: AUTHOR
Endelement: BOOK
...
Durch die Funktion xml_parse () kombiniert mit der Prozessorfunktion können wir frei steuern, wie Daten extrahiert werden, und sogar die analysierten Ergebnisse in der Datenbank speichern oder die entsprechende HTML -Seite generieren, wie z. B.:
echo "<a href='https://m66.net/book.php?id=101'>Überprüfen《PHP Erste Schritte》</a>";
Diese Methode ist sehr praktisch beim Anpassen des Datenlesungsprozesses.
xml_parse () bietet einen leichten und schnellen Weg, um XML -Daten zu analysieren. Obwohl es zugrunde liegender als der DOM -Parser ist, ist es eine sehr geeignete Wahl für Situationen, in denen die Leistungsanforderungen hoch sind oder Datenstrukturen bekannt sind. Durch das Mastering Ereignisorientiertes Parsing können Sie auch den Struktur- und Datenverarbeitungsmechanismus von XML-Dateien tiefer verstehen.
Verwandte Tags:
xml_parse