Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

XML Datei einlesen mit PHP

Sie befinden sich: Home > Php Tutorial > XML Datei einlesen mit PHP

XML Datei einlesen mit PHP


Eintrag am:  13.05.2011
Hits / Besucher:  28609
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

In diesem PHP-Tutorial erläutere ich Ihnen, wie Sie eine XML-Datei mithilfe von PHP einlesen können. Wir werden Schritt für Schritt vorgehen und dabei die notwendigen Details und Erklärungen liefern, um das Verständnis zu vertiefen.

Voraussetzungen

Bevor Sie beginnen, sollten Sie über folgende Komponenten verfügen:

  • PHP-Umgebung: Stellen Sie sicher, dass PHP korrekt auf Ihrem Server oder lokalen Rechner installiert ist.
  • Texteditor: Ein einfacher Texteditor wie Notepad++, Sublime Text oder VS Code eignet sich hervorragend zum Bearbeiten von PHP- und XML-Dateien.

Schritt 1: Erstellung der XML-Datei

Zunächst benötigen Sie die XML-Datei, die Sie einlesen möchten. In diesem Beispiel erstellen wir eine XML-Datei namens xml_datei.xml. Diese Datei wird im gleichen Verzeichnis wie Ihr PHP-Skript gespeichert.

Inhalt der XML-Datei

Öffnen Sie Ihren bevorzugten Texteditor und fügen Sie den folgenden Inhalt ein:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<verzeichnis>
<titel>Städteverzeichnis</titel>
<eintrag>
<stichwort>Erfurt</stichwort>
<eintragstext>Erfurt ist die Hauptstadt von Thüringen...</eintragstext>
</eintrag>
<eintrag>
<stichwort>Jena</stichwort>
<eintragstext>Jena ist bekannt für ihre Universitäten und Forschungseinrichtungen...</eintragstext>
</eintrag>
</verzeichnis>

Speichern der XML-Datei

Speichern Sie die Datei unter dem Namen xml_datei.xml im gleichen Verzeichnis wie Ihr PHP-Skript. Achten Sie darauf, dass der Dateiname exakt übereinstimmt, um Fehler beim Einlesen zu vermeiden.

Schritt 2: Erstellung des PHP-Skripts

Nun erstellen wir das PHP-Skript, das die XML-Datei einliest und die Daten verarbeitet. Das Skript kann beliebig benannt werden, beispielsweise einlesen_xml.php, solange es sich im selben Verzeichnis wie xml_datei.xml befindet.

PHP-Code Erklärung

Im Folgenden finden Sie den vollständigen PHP-Code mit ausführlichen Kommentaren:

<?php

header('Content-Type: text/html; charset=utf-8');

/**
* Definieren des Pfads zur XML-Datei inklusive Dateinamen
*/
$xml_datei = 'xml_datei.xml';

/**
* Überprüfen, ob die XML-Datei existiert
* Die @-Zeichen unterdrücken Fehlermeldungen, falls die Datei nicht gefunden wird
*/
if (@file_exists($xml_datei) != false) {
/**
* Einlesen der XML-Datei mit der Funktion simplexml_load_file()
* Die geladene XML wird als Objekt in $xml_object gespeichert
*/
$xml_object = simplexml_load_file($xml_datei);

/**
* Überprüfen, ob das Element <eintrag> im XML-Objekt vorhanden ist
*/
if (is_object($xml_object->eintrag) == true) {
/**
* Durchlaufen der <eintrag>-Elemente mit einer foreach-Schleife
* Jede Iteration liefert den Schlüssel ($key) und den Wert ($value) des aktuellen Elements
*/
foreach ($xml_object->eintrag as $key => $value) {
/**
* Ausgabe des <stichwort>-Elements in Fettdruck
*/
echo '<b>' . $value->stichwort . '</b><br />';
/**
* Ausgabe des <eintragstext>-Elements
*/
echo $value->eintragstext . '<br />';
}
}
} else {
/**
* Beenden des Skripts mit einer Fehlermeldung, falls die XML-Datei nicht geöffnet werden kann
*/
exit('Konnte ' . $xml_datei . ' nicht öffnen.');
}
?>
 

Detaillierte Erläuterungen

  1. Header setzen:

    header('Content-Type: text/html; charset=utf-8');
    

    Dieser Header stellt sicher, dass der Inhalt als HTML mit UTF-8-Kodierung interpretiert wird, was wichtig für die korrekte Darstellung von Sonderzeichen ist.

  2. Pfad zur XML-Datei definieren:

    $xml_datei = 'xml_datei.xml';

    Hier wird die Variable $xml_datei mit dem Namen der XML-Datei initialisiert. Da sich die Datei im gleichen Verzeichnis wie das PHP-Skript befindet, reicht der Dateiname aus.

  3. Existenz der XML-Datei prüfen:

    if (@file_exists($xml_datei) != false) {

    Die Funktion file_exists() überprüft, ob die angegebene Datei vorhanden ist. Das @-Zeichen unterdrückt etwaige Fehlermeldungen, die auftreten könnten, wenn die Datei nicht existiert.

  4. XML-Datei einlesen:

    $xml_object = simplexml_load_file($xml_datei);

    Die Funktion simplexml_load_file() lädt die XML-Datei und konvertiert sie in ein einfach zu bearbeitendes Objekt. Dies ermöglicht den direkten Zugriff auf die XML-Struktur und deren Elemente.

  5. Überprüfen, ob das <eintrag>-Element vorhanden ist:

    if (is_object($xml_object->eintrag) == true) {

    Diese Bedingung stellt sicher, dass das XML-Objekt das Element <eintrag> enthält und dass es sich um ein gültiges Objekt handelt.

  6. Durchlaufen der <eintrag>-Elemente mit foreach:

    foreach ($xml_object->eintrag as $key => $value) {

    Die foreach-Schleife iteriert über jedes <eintrag>-Element im XML. Dabei werden der Schlüssel ($key) und der Wert ($value) des aktuellen Elements ermittelt.

  7. Ausgabe der Daten:

    echo '<b>' . $value->stichwort . '</b><br />';
    
    echo $value->eintragstext . '<br />';

    Hier werden die Inhalte der <stichwort>- und <eintragstext>-Elemente formatiert und auf der Webseite angezeigt. <b> sorgt für Fettdruck, und <br /> fügt einen Zeilenumbruch hinzu.

  8. Fehlerbehandlung bei fehlender XML-Datei:

    else {
    
    exit('Konnte ' . $xml_datei . ' nicht öffnen.');
    }

    Falls die XML-Datei nicht gefunden oder nicht geöffnet werden kann, beendet die exit()-Funktion das Skript und gibt eine Fehlermeldung aus.

Schritt 3: Ausführung des PHP-Skripts

Nachdem Sie sowohl die XML-Datei als auch das PHP-Skript erstellt haben, können Sie das Skript ausführen, um die Daten der XML-Datei anzuzeigen.

Erwartete Ausgabe

Die Ausgabe des Skripts sollte wie folgt aussehen:

Erfurt
Erfurt ist die Hauptstadt von Thüringen...

Jena
Jena ist bekannt für ihre Universitäten und Forschungseinrichtungen...

Diese Ausgabe zeigt die Inhalte der <stichwort>- und <eintragstext>-Elemente aus der XML-Datei in einer übersichtlichen und lesbaren Form an.

Vertiefende Betrachtungen

Das SimpleXML-Modul in PHP erleichtert die Arbeit mit XML-Daten durch eine intuitive und objektorientierte Herangehensweise. Es erlaubt Entwicklern, XML-Dokumente effizient zu parsen und deren Inhalte wie Elemente und Attribute einfach zu manipulieren.

Grafik mit vier Bereichen, die die Funktionen des SimpleXML-Moduls in PHP darstellen: Manipulation von Elementen und Attributen (gelb), Intuitive Herangehensweise (grün), Objektorientiertes Design (hellgrün) und Effizientes Parsen (blau), dargestellt in einer rautenförmigen Anordnung um ein zentrales XML-Symbol.

In diesem Tutorial wird die XML-Datei im selben Verzeichnis wie das PHP-Skript gespeichert. Dies reduziert die Komplexität beim Zugriff, da keine langen Pfade angegeben werden müssen. Befindet sich die Datei jedoch an einem anderen Ort, ist der vollständige Pfad erforderlich, beispielsweise:

$xml_datei = '/pfad/zum/verzeichnis/xml_datei.xml';

Eine grundlegende Methode zur Fehlerbehandlung besteht in der Verwendung von @file_exists() und exit(), um sicherzustellen, dass die XML-Datei vorhanden ist, bevor das Skript fortfährt. Für eine erweiterte Fehlerbehandlung könnten Sie unter anderem Fehler protokollieren oder benutzerfreundliche Fehlermeldungen ausgeben.

Die foreach-Schleife eignet sich hervorragend, um über <eintrag>-Elemente zu iterieren. Jedes dieser Elemente wird als Objekt behandelt, was den direkten Zugriff auf Unterelemente wie <stichwort> und <eintragstext> erleichtert.

Je nach Anforderungen kann der Aufbau der XML-Datei flexibel erweitert werden. Neue Elemente oder Attribute können hinzugefügt werden, um zusätzliche Informationen zu speichern. Dabei ist es entscheidend, das PHP-Skript entsprechend anzupassen, um die neuen Daten korrekt zu verarbeiten und darzustellen.

Sollten Sie weitere Fragen zu diesem Tutorial haben, steht Ihnen unser Forum gerne zur Verfügung.

 

Tags:

 

Artikel hinzufügen bei:
         
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.