Home
Navigation
Impressum
Coder Welten - Programmierung und Optimierung
Coder Welten
 
 

 

 

OOP: Eine einfache Parserklasse mit PHP

Eine Parserklasse für ein einfaches XML-Dokument

Übersicht » Einführung OOP

Beispiele:

  1. Parserklasse (eine simple Parserklasse für ein einfaches XML-Dokument)
  2. Socket Klasse (eine TCP/IP Socket Klasse zum Abruf wie durch einen Bot)
  3. Formular Klasse (Socket-Klasse mit einer Formular-Klasse kombinieren)
  4. cURL Klasse (eine cURL Session initialisieren und ausführen)
  5. CSV Klasse (zum Auslesen (rückwärts) von umfangreichen CSV-Dateien)

Eine erste praktische Anwendung

Die vorausgehenden Beispiel-Klassen haben den Nachteil, dass aus ihnen kein Vorteil bei der praktischen Anwendung ersichtlich wird. So könnte der Text für die Ausgabe einfach als String in den Quelltext einer HTML-Datei geschrieben oder in einer Variablen gespeichert werden. Eine etwas praktischere Anwendung bestünde in der Definition einer kleineren Parserklasse zur Verarbeitung von XML- Doku­menten.
Obwohl die SimpleXML-Funktionen und Methoden einfacher zu handhaben wären, weiterhin die DOM Schnittstelle sich ebenfalls anbieten würde, so bietet eine kleine, ausbaufähige Parserklasse als Übungsobjekt zumindest eine Vorstellung vom praktischen Nutzen und den Möglichkeiten der objektorientierten Programmierung.

Beispiel eines kleinen XML-Dokumentes (test-01.xml):

<?xml version="1.0"?>
<exempel>
    <titel>
        <headline>OOP</headline>
        <subtitel>Klassen und Objekte</subtitel>
    </titel>
    <inhalt>
        <text>Nur ein Test...</text>
    </inhalt>
</exempel>

Listing einer einfachen Parserklasse (simpler-parser-01.php):

<?php

/*-- Definieren einer einfachen Parserklasse ---------------*/

class SimplerParser {

    private $muster1 = "<headline>(.+?)<\/headline>";
    private $muster2 = "<subtitel>(.+?)<\/subtitel>";
    private $muster3 = "<text>(.+?)<\/text>";

    public function getTitel($such) {

        if (preg_match("/".$this->muster1."/", $such, $fund)){
        return $fund[1];
        }
    }
    public function getSubt($such) {

        if (preg_match("/".$this->muster2."/", $such, $fund)){
        return $fund[1];
        }
    }
    public function getText($such) {

        if (preg_match("/".$this->muster3."/", $such, $fund)){
        return $fund[1];
        }
    }
}

/*------------------------------------------------------------
 Erzeugen und Instanziieren des Objektes SimplerParser sowie
 die Ausgabe von Titel, Untertitel und Text.
--------------------------------------------------------------
*/

if (file_exists("test-01.xml")) {

    $lesen = file_get_contents("test-01.xml");

    $gebeaus = new SimplerParser();

    echo "<h1>".htmlspecialchars($gebeaus->getTitel($lesen))."</h1>\n".
         "<h2>".htmlspecialchars($gebeaus->getSubt($lesen))."</h2>\n".
         "<p>" .htmlspecialchars($gebeaus->getText($lesen)) ."</p>\n";
}
else {echo "Die gesuchte Datei ist nicht vorhanden!";
}

?>

<?php

Die Ausgabe beim Aufruf der kleinen XML-Datei (test-01.xml) mit dem voraus-gehenden Script (simpler-parser-01.php):

Test der Parserklasse
Testausgabe der Parserklasse

Es sei angemerkt, sollte mit dem Code-Listing von dieser Seite der Versuch unternommen werden, ein anderes XML-Dokument zu parsen, müssten die verwendeten Ausdrücke für die Suchmuster entsprechend angepasst werden.

weitere Beispiele » Socket Klasse

 

Copyright © Verlag Horst Müller - Stendal - 2006 - Impressum - Datenschutz - Nutzungsbedingungen