6. XML-Verarbeitung. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. XML Design Goals

Ähnliche Dokumente
Softwareentwicklung mit Komponenten

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

ELBA2 ILIAS TOOLS AS SINGLE APPLICATIONS

XML Extensible Markup Language

Aufgaben eines Codegenerators

XML Extensible Markup Language

Java und XML 2. Java und XML

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

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

1 Software Engineering 1

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

X-Technologien. XML and Friends. Jörn Clausen 9. Juli 2001

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014

ColdFusion 8 PDF-Integration

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Vortrag im Rahmen des IFC-Seminars am Performance Messungen mit XML bei der empolis GmbH

MySQL Queries on "Nmap Results"

Faclets. Eine alternative View Technologie um JSF Applikationen OHNE JSP zu entwickeln Wird unter java.net gehostet Open Source, CDDL Lizenz

Wiederholung: Beginn

PHILIPP-SCHAFFNER.CH. Teil der Blooniverse Media Group. 28. November 2009 DrupalCamp Vienna

Berner Fachhochschule Software Schule Schweiz JDOM. Beatrice Amrhein. Oktober 06

Algorithms for graph visualization

Employment and Salary Verification in the Internet (PA-PA-US)

Log Parser 2.0 HackerScan.js. Beschreibung. Anforderungen. Unterstützte Plattformen. Script-Code. Zurück zur Übersichtsseite

Einführung in Perl. WWW, Teil 2: XML

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

Programmentwicklung ohne BlueJ

EEX Kundeninformation

Mul$media im Netz (Online Mul$media) Wintersemester 2014/15. Übung 02 (Nebenfach)

XML-Programmierschnittstellen: SAX, DOM

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

Web Data Mining. Albert Weichselbraun

XML-Praxis. XML-Grammatiken. Jörn Clausen

Martin Schütte. 6. Brandenburger Linux-Infotag 21. November 2009

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Preisliste für The Unscrambler X

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

Exercise (Part I) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Distributed testing. Demo Video

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Praktikum Entwicklung Mediensysteme (für Master)

Web Sockets mit HTML5. Quelle:

Programmieren von Webinformationssystemen

TYPO3 Commerce Extension

Spock und Geb (WebDriver) Wie können freie Werkzeuge zum strukturierten Testen von Web-Applicationen eingesetzt werden?

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1.

miditech 4merge 4-fach MIDI Merger mit :

Hypertext Markup Language HTML. Stefan Szalowski Internet-Technologien HTML

10. Datenbanken und DBI Ties BerkeleyDB Datenbanken und DBI Oracle, Mysql und Proxy Server Ties tie

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

Objektorientierung: Klassen und Objekte

Java und XML/XML und Java. Mario Jeckle DaimlerChrysler Forschungszentrum Ulm

Jens Kupferschmidt Universitätsrechenzentrum

XML-Workshop, Teil 3: Programmieren mit DOM und SAX

XML Informationsmodelle

Verarbeitung von XML mit SAX und DOM

p^db=`oj===pìééçêíáåñçêã~íáçå=

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

SemTalk Services. SemTalk UserMeeting

XML Template Transfer Transfer project templates easily between systems

<body> <h1>testseite für HTML-Parameter-Übergabe<br>50 Parameter werden übergeben</h1>

Object Relational Mapping Layer

Customer-specific software for autonomous driving and driver assistance (ADAS)

Selbststudium OOP Programmieren 1 - H1103 Felix Rohrer

Als Webtechnologien bezeichnen wir die Summe aller Technologien, mittels derer das WWW betrieben wird.

Universität Zürich und Open Access

5. Programmierschnittstellen für XML

Titelbild1 ANSYS. Customer Portal LogIn

5. Programmierschnittstellen für XML

Clubabend am

Erste Schritte mit XHTML

Die XML-Schnittstelle von FreelancerWelt.de Projektimport

XML und SOAP Einführung und Grundlagen

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

FAQ - Häufig gestellte Fragen zur PC Software iks AQUASSOFT FAQ Frequently asked questions regarding the software iks AQUASSOFT

W3C was ist das und wie kann ich da mitmachen?

Inhalt. Vorbemerkungen... 1

Was ist SVG? Inhalt: Allgemeines zu SVG Besondere Merkmale Vor- und Nachteile Dateiformat Standardobjekte Koordinatensystem Beispiele Links

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Technologie Herbst Workshop

Technical Support Information No. 123 Revision 2 June 2008

CampusCenter. Anleitung zur Online-Einschreibung für Promovenden. Instructions for the PhD online enrollment procedure

Amarettini Himbeer Vanilletrifle für 4 Personen. Zutaten:

Enhanced Transaction Solution (ETS) Interface: Erweiterungen Eurex Release 11.0 Veröffentlichung von Dokumentation

parkhaus berlin collection 08 ligthing

WEBSEITEN ENTWICKELN MIT ASP.NET

Web-Programmierung (WPR)

Komplexe Datenstrukturen

Tobias Hauser. XML-Standards. schnell+kompakt

Internationalisierung von Webseiten

XML-RPC zur Backend- Kommunikation in einem mobilen SBB-Projekt

Verarbeitung von XML-Dateien. Jörn Clausen

Java Server Pages (JSP)

XML, XHTML und MathML

new possibilities for the worldwide market

Softwareschnittstellen

Mercury DOCUMENT & FORMS Management. XML-RPC Programmierschnittstelle

Transkript:

5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 6 6. XML-Verarbeitung XML Design Goals XML shall be straightforwardly usable over the Internet. XML shall support a wide variety of applications. XML shall be compatible with SGML. It shall be easy to write programs which process XML documents. The number of optional features in XML is to be kept to the absolute minimum, ideally zero. XML documents should be human-legible and reasonably clear. The XML design should be prepared quickly. The design of XML shall be formal and concise. XML documents shall be easy to create. Terseness in XML markup is of minimal importance. W3C XML Working Group 6-2

6.1. Ereignisbasierte XML-Verarbeitung SAX-Parser (Simple API for XML) 6-3 SAX-Parser in perl Beispiel: XML-Text für einen Warenhaus-Katalog: <katalog> <titel>satelliten Antenne, 60cm</titel> <inhalt>twin LNB, Aluminium, Wandhalter, 10m Kabel</inhalt> <preis waehrung="euro">58,90</preis> <titel>satelliten Antenne, 80cm</titel> <inhalt>twin LNB, Aluminium, Wandhalter, 20m Kabel</inhalt> <preis waehrung="euro">78,90</preis> </katalog> 6-4

soll hierarchisch eingerückt werden: SAX-Parser in perl <katalog> <titel>satelliten Antenne, 60cm </titel> <inhalt>twin LNB, Aluminium, Wandhalter, 10m Kabel </inhalt> <preis waehrung="euro">58,90 </preis> <titel>satelliten Antenne, 80cm </titel> <inhalt>twin LNB, Aluminium, Wandhalter, 20m Kabel </inhalt> <preis waehrung="euro">78,90 </preis> </katalog> 6-5 SAX-Parser in perl use XML::Parser; $p = new XML::Parser(Style => 'Stream'); $p >parsefile("artikel.xml"); sub StartTag { # $_ enthält Kopie des Tags, %_ die Attribut/Wert Paare print "\n$space$_"; $space.= " "; sub EndTag { # $_ enthält Kopie des Tags chop $space; chop $space; print "\n$space$_"; sub Text { # $_ enthält gesammelten Nicht Markup Text $_ =~ s/\n//g; print "$_"; 6-6

SAX-Parser in PHP Beispiel: XML-Text für ein Kochrezept <?xml version='1.0' encoding="iso 8859 1"?> <rezept> <rezept_name>nudeln mit Tomatensauce</rezept_name> <zutaten> <zutat>500g Spaghetti</zutat> <zutat>1 Dose Tomaten</zutat> <zutat>4 Knoblauchzehen</zutat> <zutat>1 geschnittene Zwiebel</zutat> <zutat>oregano, Basilikum, Salz und Pfeffer</zutat> </zutaten> <sowirdsgemacht> Nudeln kochen. Zwiebeln und Knoblauch braten. Tomaten hinzugeben. Abschmecken und 5 Minuten kochen lassen. </sowirdsgemacht> </rezept> 6-7 SAX-Parser in PHP soll in HTML dargestellt werden: 6-8

SAX-Parser in PHP <!DOCTYPE HTML PUBLIC " //W3C//DTD HTML 3.2 Final//EN"> <html> < head><title>meine Lieblingsrezepte</title></head> <body bgcolor="white"> <?php $file = "rezepte.xml"; /* Abbildungstabelle XML > HTML für Rezepte */ $map_tag = array( "rezepte" => "", "rezept" => "hr", "rezept_name" => "h1", "zutaten" => "ol", "zutat" => "li", "sowirdsgemacht" => "p" ); /* XML Tags für die kein Ende Tag im HTML erzeugt wird */ $skip_end_tag = array( "rezepte" => true, "rezept" => true ); 6-9 SAX-Parser in PHP /* die Ereignisbehandlung */ function starttag($parser, $name, $attrs) { global $map_tag; if ($map_tag[$name]) print "<$map_tag[$name]>"; function endtag($parser, $name) { global $map_tag, $skip_end_tag; if (!isset($skip_end_tag[$name])) print "</$map_tag[$name]>"; function data($parser, $data) { print $data; /* die Parser Konfigurierung */ $xp = xml_parser_create(); xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, false); xml_set_element_handler($xp, "starttag", "endtag"); xml_set_character_data_handler($xp, "data"); 6-10

SAX-Parser in PHP /* die XML Verarbeitung */ $fp = fopen($file, "r") or die("could not open XML input"); while ($data = fread($fp, 4096)) { if (!xml_parse($xp, $data, feof($fp))) { die(sprintf("xml error: %s at line %d", xml_error_string(xml_get_error_code($xp)), xml_get_current_line_number($xp))); fclose($fp); xml_parser_free($xp);?> </body </html> 6-11 6.2. Baum-basierte XML-Verarbeitung DOM-Parser (Document Object Model) 6-12

DOM-Parser in PHP Beispiel: Katalog-Daten in XML: <katalog> <titel>satelliten Antenne, 60cm</titel> <inhalt>twin LNB, Aluminium, Wandhalter, 10m Kabel</inhalt> <preis waehrung="euro">58,90</preis> <titel>satelliten Antenne, 80cm</titel> <inhalt>twin LNB, Aluminium, Wandhalter, 20m Kabel</inhalt> <preis waehrung="euro">78,90</preis> </katalog> 6-13 DOM-Parser in PHP sollen in HTML dargestellt werden: 6-14

DOM-Parser in PHP <html> <head><title>katalog</title></head> <body> <?php $xml = simplexml_load_file('artikel.xml'); foreach ($xml >artikel as $a) { echo "<h1>". $a >titel[0]. "</h1>"; echo "<h2>". $a >beschr[0]. "</h2>"; echo "<h3>". $a >inhalt[0]. "</h3>"; echo "<h3>preis: ". $a >preis[0]. " "; echo $a >preis[0]['waehrung']. "</h3>"; echo "<hr>\n";?> </body> </html> verwendet die SimpleXML-Funktionen (ab PHP 5) 6-15