1. Einführung. Gliederung. Document Object Model (DOM) DOM Die Spezifikation (1) Level 2 HTML Specification. 1. Einführung. 2.



Ähnliche Dokumente
, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger

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

1 Software Engineering 1

Java: Vererbung. Teil 3: super()

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Java und XML 2. Java und XML

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

Java Einführung Packages

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

XML-Programmierschnittstellen: SAX, DOM

Programmieren in Java

5. Programmierschnittstellen für XML

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

5. Programmierschnittstellen für XML

Online-Publishing mit HTML und CSS für Einsteigerinnen

Java Einführung Collections

... MathML XHTML RDF

Distributed Computing Group

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

Kennen, können, beherrschen lernen was gebraucht wird

OP-LOG


Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Javakurs zu Informatik I. Henning Heitkötter

Applets I. Grundlagen der g Applet-Programmierung

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Übungsblatt 3: Algorithmen in Java & Grammatiken

Grundlagen von Python

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Übung - Datensicherung und Wiederherstellung in Windows 7

Objektorientierte Programmierung. Kapitel 12: Interfaces

Programmierkurs Java

Übung: Verwendung von Java-Threads

C# im Vergleich zu Java

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Remote Method Invocation

Vorlesung Informatik II

Applet Firewall und Freigabe der Objekte

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009

Software Engineering Klassendiagramme Assoziationen

XML und SOAP Einführung und Grundlagen

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Innere Klassen in Java

Installation des edu- sharing Plug- Ins für Moodle

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

SIZ Modul 221: Outlook und Internetdienste

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

JDBC. Allgemeines ODBC. java.sql. Beispiele

LabTech RMM. Integration von Teamviewer. Vertraulich nur für den internen Gebrauch

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008

Übung - Datensicherung und Wiederherstellung in Windows Vista

Neues Modul für individuelle Anlagen. Änderung bei den Postleitzahl-Mutationen

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

GUI Programmierung in Java

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Microsoft Office 365 Kalenderfreigabe

Software Engineering Klassendiagramme weiterführende Konzepte

Ursprung des Internets und WWW

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

e-books aus der EBL-Datenbank

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Tipps und Tricks zu Netop Vision und Vision Pro

Themen. Web Service - Clients. Kommunikation zw. Web Services

Assoziation und Aggregation

AK Medientechnologien 05 Delegation

Java Einführung Abstrakte Klassen und Interfaces

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

XMLBeam. Einfach XML-Handling. W3L AG

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

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

4. AuD Tafelübung T-C3

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Programmierkurs Java

Forms Composer. Document Producer 1. Document Producer

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Einführung in die Informatik Tools

Mobile-Szenario in der Integrationskomponente einrichten

Einführung in die Java- Programmierung

Jakarta Lucene. Eine Java-Bibliothek zur Suchindex-Erstellung. Seminararbeit Tilman Schneider

Trackaufzeichnungen können als Active-Logs oder mit eigenen Namen versehene und auf max. 500 Punkte begrenzte Saved-Tracks gespeichert werden.

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Sicherheitsstandards im Internet 10 Code Signing, XML

Programmieren in Java

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

25 Import der Beispiele

Transkript:

Gliederung Document Object Model (DOM) Level 2 HTML Specification 1. Einführung Spezifikation 2. DOM Module Levels, Core, Überblick 3. DOM Intern Funktionsweise, Parser 4. DOM Level 2 HTML Eigenschaften, Vorteile, Beispiel 5. HTML-Elemente HTMLDocument, Java-Programm DOM Die Spezifikation (1) Document Object Model => logisches Modell zur Darstellung von Daten 1. Einführung sprach- und plattformneutral vom W3C definierte Sammlung von Schnittstellen zum Zugriff auf das Modell

DOM Die Spezifikation (2) Anwendungen, die auf XML- oder HTML Dokumente zugreifen können Navigieren, Lesen, Schreiben, Hinzufügen und Entfernen von Dokumentinhalten DOM Die Spezifikation (3) alle Objekte des Dokuments in hierarchischer Baumstruktur eingegliedert werden im DOM Knoten genannt garantiert strukturellen Isomorphismus jedes XML-Dokument besitzt eindeutige Struktur DOM Die Module (1) DOM Level 1 vom W3C Konsortium am 1. Oktober 1998 fertiggestellt 2. Die Module Motivation: mehrere Firmen entwickelten unterschiedliche Methoden, wie man auf eine HTML Datei zugreifen kann -> Gefahr der Sprachverwirrung Norm, wie die unterschiedlichen Inhalte solcher Dokumente angesprochen werden sollen

Das Core - Modul DOM Level 1 Core wichtigstes Modul (Basis für den Umgang mit XML-Dokumenten) Struktur eines XML - Dokuments in Baumstruktur DOM Die Module (2) DOM Level 2 am 13. November 2000 herausgegeben berücksichtigt Konzept der Namensräume Manipulieren von Style Informationen DOM-Implementierungen müssen Core oder HTML erweitern und beliebig viele weitere Module DOM Die Module (3) DOM Die Module (4) DOM Level 3 Dezember 2000 Laden und Speichern Typmodelle wie DTD Schema mit Datenvalidierung Document Views und Formatierung Ereignisgruppen

Wie funktioniert DOM? 3. DOM Intern DOM Parser (1) DOM Parser (2) DOM Parser: nach syntaktischer Überprüfung der HTML Datei wird diese vollständig in Form eines Baumes (Dokumentenbaumes) im Speicher abgebildet. Dadurch kann der Programmierer ständig auf alle Teile der Datei zugreifen und sie an beliebiger Stelle verändern Die einzelnen Bestandteile der HTML Datei bilden Knoten des Baumes.

DOM Parser (3) DOM Parser, z.b. Xerces import org.apache.xerces.parsers.domparser Objekt der Parserklasse instantiieren DOMParser parser = new DOMParser(); Dokument-Objekt holen getdocument(); DOM und Java (1) Document Object Model API Zugriff auf Baum mit DOM API DOM API importieren import org.w3c.dom.* Methoden aus dem Interface Node: int getnodetype(); String getnodevalue(); NodeList getchildnodes(); boolean has ChildNodes(); DOM und Java (2) Verfügbare APIs Xerces Apache Project www.apache.org JDOM JAXP www.jdom.org java.sun.com 4. DOM Level 2 HTML

DOM Level 2 HTML (1) Für HTML 4.0 und XHTML 1.0 Dokumente Stützt sich auf DOM Level 2 Core (für XML 2.0) ab, nicht kompatibel mit DOM Level 1 DOM HTML Level 1 ursprünglich nur für HTML 4.01 entwickelt, bevor XHTML 1.0 spezialisiert wurde DOM Level 2 HTML (2) Wesentlicher Unterschied: XHTML beachtet Groß- und Kleinschreibung, HTML nicht. stellt für HTML spezialisierte Schnittstellen zur Verfügung eigene Schnittstelle für viele HTML- Tags Vorteile (1) Einheitliche Schnittstelle in verschiedenen Entwicklungsumgebungen Logisches Objekt, das HTML- Dokumente in eindeutiger Form strukturiert vom W3C standardisiert und unterstützt durch Firmen wie Sun, IBM, Microsoft Vorteile (2) Spezialisieren und Hinzufügen von Funktionalität, die sich auf HTML Elemente bezieht Unterstützung von benutzerfreundlichen Mechanismen für häufige Operationen auf HTML Elementen

Speicher und Performance Beispiel Keine Probleme bei kleineren Dokumenten Bei umfangreichen Dateien schwerfällig und langsam http://www.brainjar.com/dhtml/domv iewer/demo.html =>besser viele kleine Dokumente als ein großes HTMLDocument Spezialisierung von Document aus Core repräsentiert gesamtes HTML- Dokument 5. HTML Elemente <html> </html> title, referrer, domain, URL, body, images, applets, links, forms, anchors, cookie

HTMLElement interface HTMLDocument : Document { attribute DOMString title; readonly attribute DOMString referrer; readonly attribute DOMString domain; readonly attribute DOMString URL; attribute HTMLElement body; readonly attribute HTMLCollection images; readonly attribute HTMLCollection applets; readonly attribute HTMLCollection links; readonly attribute HTMLCollection forms; readonly attribute HTMLCollection anchors; attribute DOMString cookie; // raises(domexception) on setting void open(); void close(); void write(in DOMString text); void writeln(in DOMString text); NodeList getelementsbyname(in DOMString elementname); }; Spezialisierung von Element aus Core Elemente, die nur die Kernattribute von HTML erweitern (z.b. Sub, Sup, Span, Big, Small, Em, Strong, Abbr, Dt, Noframes, Center) id, title, lang, dir, classname HTMLCollection interface HTMLElement : Element { attribute DOMString id; attribute DOMString title; attribute DOMString lang; attribute DOMString dir; attribute DOMString classname; }; entspricht NodeList von Core, Menge von Node-Objekten Zugriff über Index oder Namen length, item, nameditem

HTMLBodyElement interface HTMLCollection { readonly attribute unsigned long length; Node item(in unsigned long index); Node nameditem (in DOMString name); }; Spezialisierung von HTMLElement repräsentiert den Körper der HTML- Datei <body> </body> alink, background, bgcolor, link, text, vlink HTMLFormElement interface HTMLBodyElement : HTMLElement { attribute DOMString alink; attribute DOMString background; attribute DOMString bgcolor; attribute DOMString link; attribute DOMString text; attribute DOMString vlink; }; Spezialisierung von HTMLElement repräsentiert ein HTML-Formular <form> </form> elements, length, name, acceptcharset, action, enctype, method, target, submit, reset

Verwendung: Java-Programm interface HTMLFormElement : HTMLElement { readonly attribute HTMLCollection elements; readonly attribute long length; attribute DOMString name; attribute DOMString acceptcharset; attribute DOMString action; attribute DOMString enctype; attribute DOMString method; attribute DOMString target; void submit(); void reset(); }; ChangeBGColor setzt bei beliebigen HTML-Dokument bgcolor- Attribut im Body auf Wert und speichert dies + Textausgabe import java.io.*; import org.w3c.dom.*; import org.xml.sax.*; import org.w3c.dom.html.*; import org.apache.xml.serialize.*; import org.apache.html.dom.htmldocumentimpl; import org.apache.xerces.parsers.domparser; public class ChangeBGColor { public ChangeBGColor() { } public static void main(string[] args) { try { String filename = args[0]; DOMParser parser = new DOMParser(); parser.parse(new InputSource(filename)); HTMLDocumentImpl doc = (HTMLDocumentImpl)parser.getDocument(); HTMLBodyElement body = (HTMLBodyElement) doc.getbody(); String color = body.getbgcolor(); System.out.println ("Aktuelle Hintergrundfarbe ist "+color+"."); color = args[1]; body.setbgcolor(color); System.out.println ("Farbe geändert zu "+color+".");

// Document drucken OutputFormat format = new OutputFormat (doc); format.setlineseparator (LineSeparator.Windows); FileOutputStream out = new FileOutputStream (filename); HTMLSerializer html = new HTMLSerializer (out, format); html.serialize (doc); } catch(exception e) { System.out.println ("Fehler beim Parsen!"); e.printstacktrace (System.out); Vielen Dank! } } }