Aktueller Standort: Startseite> Neueste Artikel> Wie analysieren Sie Attribute und Elemente in einer XML -Datei mit der Funktion XML_PARSE?

Wie analysieren Sie Attribute und Elemente in einer XML -Datei mit der Funktion XML_PARSE?

M66 2025-05-13

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.

1. Bereiten Sie eine XML -Beispieldatei vor

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>

2. Erstellen Sie einen XML -Parser und richten Sie Verarbeitungsfunktionen ein

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

3. Lesen und analysieren Sie XML -Inhalte

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

4. Verwendung in praktischen Anwendungen

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.

5. Zusammenfassung

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.