PHP objektorientiert



Ähnliche Dokumente
XML und Datenmodellierung

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

... MathML XHTML RDF

05 For-Schleifen. For-Schleifen 1/7 Was ist eine Schleife?

Die drei Engel der Weihnacht

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

15. XML + Repick (Fotoservice) Geschätzter Zeitaufwand: 1.5 Std.

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Kurze Einführung in XML

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so:

Aufgaben zu XPath und XQuery

Thomas Sillmann. Swift im Detail HANSER

Java und XML 2. Java und XML

Gradle. Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Richtig einsteigen: Access 2010 VBA-Programmierung

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Dokumentation Goobi-Plugin

Daten- und Metadatenstandards Wintersemester 2011 / November 2011 XML II: DTD

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

XML und Datenmodellierung

XML. Teil 3: Namensräume. Abteilung Informatik WS 02/03

Dokumentenstrukturen

Apps für ios entwickeln

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

XML 1.1. Grundlagen. Elmar Fuchs, Heiko Schröder. 5. Ausgabe, Januar 2015 ISBN: XML11

C++ Einführung und professionelle Programmierung. von Ulrich Breymann. 8., erweiterte Auflage. Hanser München 2005

Die XML-Schnittstelle von FreelancerWelt.de Projektimport

Webseiten entwickeln mit ASP.NET

Office 2010 Programmierung mit VSTO und.net 4.0

News RSS-Export. mit tt_news und pmk_rssnewsexport. Alexander Mürb, Arthur Palmer TYPO3 User Group Stuttgart

Eine Dokumenttypdefinition lässt sich im Kopfbereich des XML-Dokumentes (interne DTD) oder in einer separaten Datei formulieren (externe DTD).

XML Extensible Markup Language

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang,

XSD - XML Schema Definition

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Online Kataloge. Wie binde ich einen SGVSB-Online-Katalog in eine Webseite ein. Versionsnummer: 1.0 Änderungsdatum:


XML - die zukünftige Sprache des WWW? Daten im WWW strukturiert speichern, übertragen, darstellen und verketten. Max Riegel XML

GRUNDKURS INFORMATIK. Marcel Götze

Seminarphase PG 402 Thema: Semantic Web Autor: Phillip Look

<Trainingsinhalt> XML umsetzen und nutzen

Klaus Schild, XML Clearinghouse Aufbau von XML- Dokumenten

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

Erste Schritte der Programmierung in C

XML für Nachrichten. Anwendungsfall RSS- Newsfeed. Florian Wilmshöver Proseminar Auszeichnungsprachen

PHP Programmierung. Seminarunterlage. Version 1.07 vom

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Single Source Publishing mit XML

Praktikum zur Veranstaltung XML-Technologie: Übung 09

Gegeben ist das folgende XML-Dokument.

Einführung in XML. Arthur Brack FHDW Hannover. 1. Oktober 2009

Wiederholung: Beginn

Business Communication Architecture Blueprint

Inhaltsverzeichnis. Apps für Android entwickeln

XML Extensible Markup Language

03 XML Grundlagen. Manuel Burghardt Lehrstuhl für Medieninformatik

Borland Delphi 6 -- Kochbuch

Webseiten entwickeln mit ASP.NET

Übungsbeispiel 1 Erstellen Sie eine Homepage für Ihre Gruppe in XML und überprüfen Sie die Wohlgeformtheit in einem Editor/Browser.

, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger

Grundlagen der Web-Entwicklung INF3172

Java API for XML Binding

Marcus Lunzenauer. Templates zur Vereinheitlichung der Ausgabeerzeugung. virtuos Zentrum zur Unterstützung virtueller Lehre der Universität Osnabrück

CouchDB & CouchApps. Strukturlose Speicherung von Daten und Anwendungen. B1 Systems GmbH. March 18,

Tobias Hauser. XML-Standards. schnell+kompakt

LATEX-Grundlagen. Setzen einer wissenschaftlichen Arbeit Ergebnis der Übungen. von

DOM Document Object Model

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

Übung zur Vorlesung Digitale Medien. Hanna Schneider Ludwig-Maximilians-Universität München Wintersemester 2014/2015

Webseite in XML Kurzeinführung

Transkript:

PHP objektorientiert Konzepte, Techniken, Code von Jörg Krause, Christian Alkemper, Peter Lavin 1. Auflage Hanser München 2006 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 40762 6 Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

PHP objektorientiert Peter Lavin Konzepte, Techniken, Code ISBN 3-446-40762-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40762-6 sowie im Buchhandel

12.2 Struktur einer RSS-Datei RSS Leider gibt es zahlreiche Versionen von RSS. Wählen wir einen pragmatischen Ansatz und ignorieren wir die verworrenen Details der historischen Entwicklung von RSS. Wenn etwas neu ist, sollte man am besten immer mit einem ganz einfachen Beispiel beginnen, und die einfachste Version von RSS ist Version 0.91. Diese Version gilt zwar offiziell als veraltet, wird aber trotzdem weiterhin in großem Stile eingesetzt, und Kenntnisse ihrer Struktur stellen eine gute Grundlage für die Migration auf Version 2.0 dar Ihre Mühen sind also nicht umsonst. Ich werde Ihnen ein Beispiel für eine RSS 0.91-Datei vorstellen. Ehrlich gestanden handelt es sich dabei sogar um genau den RSS-Feed, den wir zur Anzeige von Neuigkeiten auf einer Webseite verwenden werden. 12.2 Struktur einer RSS-Datei Wie wir es bereits früher mit eigenem Code getan haben, wollen wir auch den RSS-Code Schritt für Schritt durchgehen und an den passenden Stellen Anmerkungen fallen lassen. Die allererste Komponente einer XML-Datei ist die Versionsdeklaration. Diese Deklaration zeigt eine Versionsnummer und kann wie im folgenden Beispiel zudem Angaben zur Zeichenkodierung enthalten. <?xml version="1.0" encoding="iso-8859-1"?> Auf die XML-Versionsdeklaration folgt in der nächsten Codezeile das allererste Element des Dokuments. Der Name dieses Elements definiert den Typ des XML-Dokuments. Aus diesem Grund heißt dieses Element auch Dokumentelement oder Wurzelelement. Keine Überraschung: Unser Dokumenttyp ist RSS. Dieses Einleitungselement definiert die RSS- Versionsnummer und hat ein passendes schließendes Tag, welches das Dokument auf ähnliche Weise abschließt, wie <html> und </html> zum Öffnen und Schließen einer Webseite verwendet werden. <rss version="0.91"> Ein korrekt formatiertes RSS-Dokument erfordert genau ein channel-element. Dieses Element wird die Metadaten zum Feed sowie die eigentlichen Daten aufnehmen, aus denen der Feed besteht. Ein channel-element erfordert drei Unterelemente: title (Titel), link (Verknüpfung) und description (Beschreibung). In unserem Code werden wir das Element channel title extrahieren, um einen Header für unsere Webseite zu erstellen. 135

12 Frisch halten leicht gemacht <channel> <title>about Classical Music</title> <link>http://classicalmusic.about.com/</link> <description>get the latest headlines from the About.com Classical Music Guide Site.</ description> Die Unterelemente language (Sprache), pubdate (Veröffentlichungsdatum) und image (Bild) enthalten optionale Metadaten zum Kanal. <language>en-us</language> <pubdate>sun, 19 March 2006 21:25:29-0500</pubDate> <image> <title>about.com</title> <url>http://z.about.com/d/lg/rss.gif</url> <link>http://about.com/</link> <width>88</width> <height>31</height> </image> Das nachfolgende Element item ist das, woran wir eigentlich interessiert sind. Die drei erforderlichen Elemente eines Items sind diejenigen, die auch hier auftauchen: title, link und description. Dies ist der Teil des RSS-Feeds, der den Inhalt unserer Webseite bilden wird. Wir werden mit den Elementen title und link ein HTML-Tag vom Typ anchor erzeugen und auf dieses die Beschreibung folgen lassen. <item> <title>and the Oscar goes to...</title> <link>http://classicalmusic.about.com/b/a/249503.htm</link> <description>find out who won this year's Oscar for Best Music... </description> </item> Hier ist nur ein Item aufgeführt, es können beliebig viele erscheinen. In einem typischen RSS-Feed sind etwa zwanzig Items enthalten. </rss> Hiermit wird das channel-element und nachfolgend das rss-element abgeschlossen. Diese Tags sind ordnungsgemäß verschachtelt, und für jedes Tag ist ein passendes End-Tag vorhanden. Wir können also festhalten, dass dieses XML-Dokument wohlgeformt ist. Den Feed lesen Um diesen Feed lesen zu können, übergeben wir seinen URI an die Funktion simplexml_load_file und erzeugen ein Objekt SimpleXMLElement. Dieses Objekt verfügt über vier eingebaute Methoden und so viele Eigenschaften oder Datenmitglieder wie seine XML-Quelldatei. 136

12.2 Struktur einer RSS-Datei <?php //point to an xml file $feed = "http://z.about.com/6/g/classicalmusic/b/index.xml"; //create object of SimpleXMLElement class $sxml = simplexml_load_file($feed); Wir können die Methode attributes verwenden, um die RSS-Versionsnummer aus dem Wurzelelement zu extrahieren. foreach ($sxml->attributes() as $key => $value){ echo "RSS $key $value"; } Der channel title kann auf OO-Weise als verschachtelte Eigenschaft referenziert werden. Beachten Sie jedoch, dass wir $sxml->channel->title aus einem Segment in Anführungszeichen heraus nicht referenzieren können, da es sich um einen komplexen Ausdruck handelt. Eine alternative Syntax unter Verwendung geschweifter Klammern ist im nachfolgenden Kommentar enthalten. echo "<h2>". $sxml->channel->title. "</h2>\n"; // Das folgende funktioniert nicht //echo "<h2>$sxml->channel->title</h2>\n"; //may use the syntax below //echo "<h2>{$sxml->channel->title}</h2>\n";echo "<p>\n"; Wie Sie sich wohl schon denken können, unterstützt SimpleXMLElement die Iteration. //iterate through items as though an array foreach ($sxml->channel->item as $item){ $strtemp = "<a href=\"$item->link\">". "$item->title</a> $item->description<br /><br />\n"; echo $strtemp; }?> </p> Ich sagte ja bereits, dass es ganz einfach ist, aber ich könnte wetten, dass Sie nicht erwartet haben, derart wenige Codezeilen vorzufinden. Mit nur grundlegendstem Verständnis der Struktur einer RSS-Datei ist es uns gelungen, einen RSS-Feed in eine Webseite einzubetten. Die SimpleXML-Erweiterung zeichnet sich vor allem unter Umständen wie diesen aus, bei denen die Dateistruktur bereits im Vorhinein bekannt ist. Wir wissen, dass wir es mit einer RSS-Datei zu tun haben und dass diese Datei bestimmte Elemente enthalten muss, wenn sie wohlgeformt ist. Anderseits wäre, wenn wir das Dateiformat, mit dem wir es zu tun haben, nicht kennen, die SimpleXML-Erweiterung völlig ungeeignet. Ein SimpleXMLElement kann eine XML-Datei nicht abfragen, um ihre Struktur zu bestimmen. Wie sich dem Namen bereits entnehmen lässt, ist SimpleXML die am einfachsten zu verwendende XML- Erweiterung. Für komplexere Interaktionen mit XML-Dateien müssen Sie entweder die DOM- (Document Object Model) oder die SAX-Erweiterungen (Simple API for XML) verwenden. In jedem Fall ist PHP 5 mit der SimpleXML-Erweiterung seiner Herkunft treu geblieben und hat eine einfache Möglichkeit bereitstellt, Dinge zu tun, die andernfalls ziemlich komplex wären. 137