-
PHP - Teil 36 - XML (Teil 1): Diese XML-Extensions gibt es
12.12.2011 in PHP von daniel_koch
- Zum Downloadmanager hinzufügen
- PDF-Datei herunterladen
- Arbeitsmaterialien herunterladen
- Video
- Kommentare ansehen (1)
- Kategorie: PHP
- Erstellt mit Programmversion: PHP 5/6
- Kompatibel ab Programmversion: PHP 5
- Dateigröße (PDF): 1.4 MB
- Dateigröße (Arbeitsmaterial): 1 KB
- Bisherige Zugriffe: 105
Zum Downloadmanager hinzufügen PDF-Datei herunterladen (1.4 MB) Arbeitsmaterialien herunterladen (1 KB) Zugehöriges Video-Training ansehen
Tipp: Dieser Inhalt befindet sich auch auf der:
Lieber Gast …
… die Inhalte von PSD-Tutorials.de stehen nur registrierten Mitgliedern zur Verfügung. Damit wollen wir den Communitygedanken weiterführen. Als Mitglied trägst du - wenn auch nur im Kleinen - zum Puls der Community bei. Und nur so ist es möglich, weiterhin hochwertige Inhalte für alle bereitzustellen.
Vorteile der kostenlosen Mitgliedschaft
Mit der kostenlosen und schnell erledigten Registrierung erhältst du viele nachhaltige Vorteile, die wir dir hier in aller Kürze aufzeigen möchten:
- PSD steht für professionelles Know-how in den Bereichen Bildbearbeitung mit Photoshop, Fotografie, Webentwicklung, Layout- und Vektorbearbeitung, 3D-Bearbeitung mit Cinema 4D und Co.
- Über 2200 Tutorials mit druckbarer PDF-Datei und teilweise den zugehörigen Arbeitsmaterialien
- Mehr als 500 Video-Trainings als Stream zur Direktanzeige und zum Download
- Abruf von über 1000 Downloads zu Photoshop-Presets, 3D-Modellen, Grußkarten, Texturen & Co
- Zugriff auf ein sehr aktives Forum mit Antworten im Minutentakt
- Deine Daten sind sicher. Sie werden nicht weitergegeben! Die Mitgliedschaft kann jederzeit und ohne Aufwand wieder gelöscht werden.
Reinschnuppern als Gast
Niemand kauft gerne die Katze im Sack, auch wenn sie kostenlos ist. Wir haben eine Handvoll Tutorials und Video-Trainings ausgesucht, die du auch als Gast ohne Registrierung ansehen kannst. Gefallen sie dir, stehen dir nach der Registrierung alle oben genannten Inhalte zur Verfügung.
- Download: Sepia-Vintage-Effekt-Aktion
- Download: Spiegelungen 2
- Download: Vektor-Logo (Eidechse)
- Tutorial: Linien zum Glühen bringen
- Tutorial: Ballons aus einer Schublade
- Tutorial: Neue Pinsel erstellen leicht gemacht
- Tutorial: Kommerzielle Fotografie 01: Berufswunsch Fotografie
- Videotraining: Die Programmoberfläche und der Arbeitsbereich von Adobe InDesign
- Videotraining: Lichtscheinkontureneffekt mit Animation
- Videotraining: CorelDRAW X6 Grundlagen - Hilfsmittel Freihand, 2-Punkt-Linie, Bezier, B-Spline, Polylinie, Stift, 3-Punkt-Kurve
- Videotraining: CorelDRAW X6 Grundlagen: Hilfsmittel Form - Heranziehen, Zurückweisen
Das Punktesystem
Einen winzigen Haken gibt es noch. Es gibt bei uns ein Punktesystem. Damit soll erreicht werden, dass Mitglieder sich aktiv in unserer Community beteiligen. Sobald du im Forum schreibst oder Tutorials kommentierst, bekommst du Punkte. Mit diesen Punkten kannst du wiederum Tutorials anschauen oder Downloads herunterladen. Mit der Registrierung bei PSD-Tutorials.de erhältst du ein Startguthaben von 100 Punkten, womit du schon ein gutes Stück weit kommst.
PHP-Workshop-DVD - Basics & Tricks
- 12 Stunden Video-Training, 480 PDF-Seiten Tutorials
- Basics, Formulare, Datenbanken, XML und Co.
- 4 Stunden Bonusmaterial zum Webdesign (mit Photoshop
Kommentare
Tutorial empfehlen
Anleitung (Bilder + Extras werden nur für Mitglieder eingeblendet)
PHP unterstützt XML bereits seit Längerem. Allerdings wurde der XML-Support mit Einführung von PHP 5 noch einmal grundlegend überarbeitet. Seit dieser Version basieren sämtliche PHP-XML-Erweiterungen auf libxml2-Library des GNOME-Projekts. Vorteil dieser Variante: PHP hält sich nun (weitestgehend) an bestehende Standards.
Bei libxml2 handelt es sich um eine eigenständige Bibliothek, die von verschiedenen Programmen und Sprachen genutzt werden kann, u.a. eben auch von PHP. Die Bibliothek ist vollständig in C++ geschrieben und lässt sich beispielsweise in den folgenden Systemen verwenden:
• Windows
• Linux
• Mac OS X
• FreeBSD
Die offizielle Projektwebseite lautet http://xmlsoft.org/. Auf dieser Seite gibt es u.a. interessante Tutorials zur Bibliothek und zu XML.

phpinfo()-Funktion auf und sucht darin nach dem Bereich dom.
Dort sollte die installierte libxml-Version zu sehen sein. PHP 5 benötigt mindestens 2.5.10. Bei XAMPP ist die libxml standardmäß aktiviert.
extension=php_xsl.dll
Nach einem Neustart des Servers gibt es nach einem Aufruf von
phpinfo() einen xsl-Bereich.
Wer unter Linux oder am Mac arbeitet, muss libxslt über --with-xsl hinzufügen.
XML in PHP verwenden
Es gibt ganz unterschiedliche Möglichkeiten, wie man XML innerhalb von PHP nutzen kann. In PHP gibt es einige Extensions, die speziell für den XML-Einsatz entwickelt wurden. Typische Vertreter sind hier DOM und SimpleXML.Die verschiedenen Varianten lassen sich zunächst einmal sehr gut anhand der Operationen einteilen, die auf die XML-Dateien angewandt werden sollen. Die folgende Tabelle stellt die jeweiligen Möglichkeiten anhand dieser Operationen vor.
| Operation |
PHP-Variante |
|---|---|
|
Ein neues Dokument anlegen. |
DOM, XML Writer |
|
Ein bestehendes Dokument transformieren/verändern. |
DOM, SAX, SimpleXML |
|
Dokumente einlesen und verwenden, ohne sie zu verändern. |
DOM, XML Reader, SAX |
|
Bestimmte Inhalte abfragen. |
DOM, SimpleXML, SDO |
|
Dokumente validieren, also auf ihre Gültigkeit hin überprüfen. |
DOM, XML Reader, SimpleXML |
Nun stellt sich natürlich die Frage, was die einzelnen Erweiterungen können. Genau das wird nachfolgend geklärt, wobei hier nur ein Blick auf die wichtigsten dieser Extensions geworfen wird.

Das sind die wichtigsten Extensions für XML, wenngleich diese Auswahl natürlich rein subjektiv erfolgt ist:
• DOM – Diese Extension erlaubt das Bearbeiten von XML-Dokumenten auf Basis der DOM-API des W3C. (Wobei DOM hier für Document Object Model steht).
• XML Writer – Diese Extension verwendet man, wenn man XML-Dokumente erstellen will.
• SimpleXML – Hiermit lassen sich XML-Dokumente – und das verrät bereits der Name – sehr einfach verarbeiten.
• XML Reader – Diese Extension wird verwendet, um die Knoten eines XML-Dokuments nacheinander abzuarbeiten.
• XSL – Diese Erweiterung ermöglicht die Transformation von Dokumenten über den XSL-Standard.
In den nächsten XML-Tutorials werden einige dieser Extensions noch einmal genauer unter die Lupe genommen; schließlich bilden sie die Basis für die Arbeit mit XML unter PHP.
Ein erstes Beispiel
Ob ihr XML nun tatsächlich in Kombination mit PHP nutzen könnt, lässt sich am besten anhand eines Beispiels überprüfen. Ausgangspunkt dafür ist ein einfaches XML-Dokument.<?xml version="1.0" encoding="utf-8" ?> <sprachen> <sprache> <id>1</id> <name>PHP</name> <link>http://php.net/</link> </sprache> <sprache> <id>2</id> <name>CSS</name> <link>http://www.w3.org/Style/CSS/</link> </sprache> <sprache> <id>3</id> <name>XML</name> <link>http://www.w3.org/XML/</link> </sprache> <sprache> <id>4</id> <name>XHTML</name> <link>http://www.w3.org/TR/xhtml1/</link> </sprache> </sprachen>
Es handelt sich hierbei um ein typisches (wenn natürlich auch sehr einfaches) XML-Dokument. Der Root-Knoten lautet
sprachen. Innerhalb dieses Knotens sind verschiedene Kindknoten enthalten, die jeweils wieder Kindknoten besitzen. Dabei repräsentieren die einzelnen sprache-Elemente jeweils eigene Skript- und Programmiersprachen.<sprache> <id>2</id> <name>CSS</name> <link>http://www.w3.org/Style/CSS/</link> </sprache>

Wie bereits beschrieben, hält PHP verschiedene Erweiterungen bereit, um mit XML-Dokumenten zu arbeiten. Eine recht komplexe Erweiterung ist dabei DOM, durch die sich beispielsweise das Document Object Model des jeweiligen Dokuments manipulieren lässt. Diese Erweiterung ist vergleichsweise komplex und wird in einem späteren Tutorial noch einmal genauer beschrieben. Wer aber beispielsweise die entsprechenden DOM-Methoden aus JavaScript kennt, wird sich bei dieser Erweiterung schnell zurechtfinden.
Deutlich einfacher ist da die Erweiterung SimpleXML. Zu dieser Erweiterung hier ein erstes Beispiel:
<?php
$sprachen = simplexml_load_file('sprachen.xml');
echo $sprachen->sprache[0]->name, '<br />';
echo $sprachen->sprache[0]->id, '<br />';
echo $sprachen->sprache[0]->link;
?>
simplexml_load_file() gibt man die XML-Datei an, die geladen werden soll. Dabei sorgt die Funktion dafür, dass die angegebene XML-Datei in ein Objekt übersetzt wird, mit dem anschließend gearbeitet werden kann.Nun sollten die Inhalte ausgegeben werden. Dazu wird auf die einzelnen Eigenschaften des Objekts zugegriffen. Mit
$sprachen->sprache[0]->name, '<br />'; wird auf das 1. name-Element des ersten sprache-Elements zugegriffen, wobei die interne Zählung der Elemente bei 0 beginnt. Genauso verhält es sich dann auch mit den beiden anderen Einträgen. Wollt ihr auf den zweiten Datensatz zugreifen, müsstet ihr dann jeweils sprache[1] notieren.
Nun ist dieser Einzelzugriff natürlich nicht ideal, da man normalerweise gleich mehrere Datensätze ausgeben will. Damit das funktioniert, muss eine Schleife definiert werden.
<?php
$sprachen = simplexml_load_file('sprachen.xml');
foreach($sprachen->sprache as $item) {
print $item->name ." <br />";
}
?>

Die Schleife, die für diese Ausgabe verantwortlich ist, liest sämtliche
item-Elemente aus, die die Eigenschaft $sprachen->item. $item->name haben, wodurch der Name der jeweiligen Sprache ausgegeben wird.Selbstverständlich kann man auch sämtliche Inhalte ausgeben. Die entsprechende Syntax sähe dann folgendermaßen aus:
<?php
$sprachen = simplexml_load_file('sprachen.xml');
foreach($sprachen->sprache as $item) {
print $item->id . " " . $item->name . " " . $item->link;
print "<br />";
}
?>

Auch hierbei wäre wieder der Aufruf über ein assoziatives Array möglich. Wie das funktioniert, wurde bereits anhand eines anderen Beispiels gezeigt.
Fazit
PHP hat mit Version 5 einen deutlichen Qualitätssprung in Sachen XML hingelegt. So halten sich die Extensions jetzt endlich an die Vorgaben des W3C bzw. an bestehende Standards. Problematisch ist das lediglich für all diejenigen, die ihre XML-Anwendungen bislang unter PHP 4 entwickelt haben. Diese Anwendungen müssen nämlich für PHP 5 weitestgehend neu geschrieben werden.-
Reklame
-
-
- Fotobüchern
- Umrandung um Textfeld
- Kanten glätten bei meinem Bild oder Vektor?
- After Effects Ram-Vorschau - Problem mit Cache (aktualisert nicht)
- blender render stürzt ständig ab
- jQuery - Größe von einem Frameset ändern?
- [CS5] "Löschen-Mitteilung"
- Zerissenes Foto
- Biete Programmierung Ihres PSD-Designs
- Fehler beim Platzieren von Bildern
- Zeilenumbruch CS4
- Gestaltung eines Logos
- Kaufberatung Drucker
- Dynamische Auswahlliste: Name und ID übergeben
- Adobe Encore - Probleme Schaltflächen Unterbild
- 2 Fotos mit unterschiedlichem Schlagschatten in einer Datei
- Copyright-Frage - öffentliche Veranstaltung
- Photoshop auf Mini Lappi
- Link auf Anker - Firefox Problem
- Auftrag: Individuelle Flash-Gallerie
-
-
Aktuelles Commag
Anzeige
-
Anzeige


tomhade
02.01.2012 - 11:51
Prima Serie. Für mich ist es sehr hilfreich weiter in die Materie PHP vorzudringen.