PHP - DOM-Parser-Beispiel

Hallo da draußen, junge Codierungsbegeisterte! Heute machen wir uns auf eine aufregende Reise in die Welt von PHP und DOM-Parsing. Als dein freundlicher Nachbarschafts-Computerlehrer bin ich hier, um dich Schritt für Schritt durch dieses Abenteuer zu führen. Also, schnallt euch eure virtuellen Helme an und taucht ein!

PHP - DOM Parser Example

Was ist DOM-Parsing?

Bevor wir uns in den Code stürzen, lassen wir uns erstmal anschauen, was DOM-Parsing eigentlich ist. Stell dir vor, du liest ein Buch. Das DOM (Document Object Model) ist wie die Struktur dieses Buches - Kapitel, Absätze, Sätze. DOM-Parsing ist wie das Blättern durch die Seiten und das Verständnis, wie alles organisiert ist. Im Web-Welt hilft es uns, HTML-Dokumente zu navigieren und zu manipulieren.

Unsere Mission heute

Wir werden ein PHP-Skript erstellen, das eine HTML-Datei liest, einige spezifische Informationen daraus extrahiert und diese Informationen anzeigt. Es ist, als wärst du ein Detektiv, aber anstatt Verbrechen zu lösen, lösen wir das Rätsel der Webseiten!

Das Beispiel

Lassen wir mit unserer HTML-Datei beginnen. Wir nennen sie example.html:

<html>
<body>
<h1>Meine Startseite</h1>
<div class="menu">
<ul>
<li>HTML</li>
<li>PHP</li>
<li>JavaScript</li>
</ul>
</div>
</body>
</html>

Nun erstellen wir unser PHP-Skript, um diese HTML zu parsen. Wir nennen es dom_parser.php:

<?php
// Lade die HTML-Datei
$htmlContent = file_get_contents("example.html");

// Erstelle ein neues DOMDocument-Objekt
$dom = new DOMDocument();

// Lade den HTML-Inhalt in das DOMDocument
$dom->loadHTML($htmlContent);

// Erstelle ein neues DOMXPath-Objekt, um das Dokument abzufragen
$xpath = new DOMXPath($dom);

// Finde alle <li>-Elemente
$liElements = $xpath->query("//li");

// Zeige den Inhalt jedes <li>-Elements an
foreach ($liElements as $li) {
echo $li->nodeValue . "<br>";
}
?>

Lassen wir das Schritt für Schritt auseinandernehmen:

1. Laden der HTML-Datei

$htmlContent = file_get_contents("example.html");

Diese Zeile liest den gesamten Inhalt unserer HTML-Datei und speichert ihn in der Variablen $htmlContent. Es ist, als öffneten wir unser Buch und machen einenSnapshot von allen Seiten auf einmal!

2. Erstellen eines DOMDocument-Objekts

$dom = new DOMDocument();

Hier erstellen wir ein neues DOMDocument-Objekt. Denk daran als eine spezielle Lupe, die uns hilft, unsere HTML-Struktur genauer zu untersuchen.

3. Laden von HTML in DOMDocument

$dom->loadHTML($htmlContent);

Jetzt verwenden wir unsere spezielle Lupe (DOMDocument), um unseren HTML-Inhalt anzusehen. Dieser Schritt bereitet den HTML-Inhalt für das Parsing vor.

4. Erstellen eines DOMXPath-Objekts

$xpath = new DOMXPath($dom);

XPath ist wie eine Kompass, der uns durch unsere HTML-Struktur navigiert. Diese Zeile erstellt ein XPath-Objekt, das wir verwenden, um spezifische Elemente in unserem HTML zu finden.

5. Finden von

  • -Elementen
    $liElements = $xpath->query("//li");

    Hier geschieht das magische! Wir verwenden XPath, um alle <li>-Elemente in unserem HTML zu finden. Die Ausdrucksform //li bedeutet "finde alle <li>-Elemente überall im Dokument".

    6. Anzeigen der Ergebnisse

    foreach ($liElements as $li) {
    echo $li->nodeValue . "<br>";
    }

    Schließlich durchlaufen wir jedes <li>-Element, das wir gefunden haben, und zeigen seinen Inhalt (nodeValue) an. Wir fügen einen <br>-Tag nach jedem Element hinzu, um sie in separate Zeilen zu setzen.

    Ausführen des Skripts

    Wenn du dieses PHP-Skript ausführst, wird die Ausgabe sein:

    HTML
    PHP
    JavaScript

    Voilà! Wir haben erfolgreich die Listenpunkte aus unserer HTML-Datei extrahiert.

    Verwendete Methoden

    Hier ist eine Tabelle der Hauptmethoden, die wir in unserem Skript verwendet haben:

    Methode Beschreibung
    file_get_contents() Liest gesamte Datei in einen String
    new DOMDocument() Erstellt ein neues DOMDocument-Objekt
    loadHTML() Lädt HTML aus einer Zeichenkette
    new DOMXPath() Erstellt ein neues DOMXPath-Objekt
    query() Evaluierung des gegebenen XPath-Ausdrucks
    nodeValue Holt den Wert eines Knotens

    Schlussfolgerung

    Und da habt ihr es, Leute! Wir haben unsere ersten Schritte in die Welt des DOM-Parsing mit PHP unternommen. Denkt daran, Übung macht den Meister, also fürchtet euch nicht, mit verschiedenen HTML-Strukturen und XPath-Abfragen zu experimentieren.

    In meinen Jahren des Unterrichtens habe ich festgestellt, dass der beste Weg zum Lernen das Tun ist. Also, hier ist eine kleine Hausaufgabe für euch: Versucht, das Skript zu modifyzieren, um verschiedene Elemente aus dem HTML zu extrahieren. Vielleicht die Inhalte des <h1>-Tags oder alle Elemente mit einer bestimmten Klasse zu holen.

    Frohes Coden und möge der DOM mit dir sein!

  • Credits: Image by storyset