Document Object Model (DOM)

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
XML.
Objektorientierte Programmierung
Daten Anzeigen und Ausdrucken Zu Zeigende Daten (z.B. Studentenplan) Daten in XML müssen geparst und in PDF- Format umgewandelt werden. Dazu iTEXT Bibliothek.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
DOM (Document Object Model)
Ein Beispiel in Java.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Modularization of XHTML™
Speicherung von XML- Dokumenten als Large Objects.
Objektorientierte Programmierung JDK-Klassenbibliothek
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Packages Vortrag : Cornelia Hardt 23. November 1999.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
JDBC EDV JDBC.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Tobias Högel & Dennis Böck,
Medien- Technik Millennium Edition 1 Minimales HTML-Dokument Datei: NeueSeite.htm Wie man einen Seitentitel einfügt Seitentitel.
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
D O M Document Object Model
XML-Schnittstellen: SAX, DOM, XML Pull Parsing Timo Terletzki Transformation von XML-Dokumenten.
Die Persistenzschicht
Vortrag HTML, XHTML, DHTML
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Java für Fortgeschrittene
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
XML-Query. Übersicht Was ist XML-Query? Vergleich RDB XML-Dokument Syntaktisches und Use-Cases Kritik und Diskussion.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Oliver Spritzendorfer Thomas Fekete
2002 XML 10.1XML I (Parsing) 17.1XML II (XLST,XPATH) (keinPraktikum) 24.1XML III FOP 31.1Cocoon2, XSP 7.2Struts, Turbine, Velocity 14.2Testat / Evaluation.
ac.at1 EPROG Tutorium #1 Philipp Effenberger Einführung in Java Schlüsselworte Datentypen.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Programmiervorkurs WS 2014/15 Methoden
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
1 Java und XML Stephan Baldes Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg.
XML und Java Verarbeitung von XML-Dokumenten mit JAVA.
 Präsentation transkript:

Document Object Model (DOM) Level 2 HTML Specification

Gliederung 1. Einführung 2. DOM Module 3. DOM Intern 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

1. Einführung

DOM – Die Spezifikation (1) „Document Object Model“ => logisches Modell zur Darstellung von Daten 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

2. Die Module

DOM – Die Module (1) DOM Level 1 vom W3C Konsortium am 1. Oktober 1998 fertiggestellt 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

3. DOM Intern

Wie funktioniert DOM?

DOM Parser (1) DOM Parser: nach syntaktischer Überprüfung der HTML Datei wird diese vollständig in Form eines Baumes (Dokumentenbaumes) im Speicher abgebildet. Die einzelnen Bestandteile der HTML Datei bilden Knoten des Baumes.

DOM Parser (2) Dadurch kann der Programmierer ständig auf alle Teile der Datei zugreifen und sie an beliebiger Stelle verändern

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 www.jdom.org JAXP 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 Keine Probleme bei kleineren Dokumenten Bei umfangreichen Dateien schwerfällig und langsam =>besser viele kleine Dokumente als ein großes

Beispiel http://www.brainjar.com/dhtml/domviewer/demo.html

5. HTML Elemente

HTMLDocument Spezialisierung von Document aus Core repräsentiert gesamtes HTML-Dokument <html>…</html> title, referrer, domain, URL, body, images, applets, links, forms, anchors, cookie

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); };

HTMLElement 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

interface HTMLElement : Element { attribute DOMString id; attribute DOMString title; attribute DOMString lang; attribute DOMString dir; attribute DOMString className; };

HTMLCollection entspricht NodeList von Core, Menge von Node-Objekten Zugriff über Index oder Namen length, item, namedItem

interface HTMLCollection { readonly attribute unsigned long length; Node item(in unsigned long index); Node namedItem (in DOMString name); };

HTMLBodyElement Spezialisierung von HTMLElement repräsentiert den Körper der HTML-Datei <body>…</body> aLink, background, bgcolor, link, text, vLink

interface HTMLBodyElement : HTMLElement { attribute DOMString aLink; attribute DOMString background; attribute DOMString bgColor; attribute DOMString link; attribute DOMString text; attribute DOMString vLink; };

HTMLFormElement Spezialisierung von HTMLElement repräsentiert ein HTML-Formular <form> … </form> elements, length, name, acceptCharset, action, enctype, method, target, submit, reset

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(); };

Verwendung: Java-Programm „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!