FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.

Slides:



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

Objektorientierte Programmierung
Imperative Programmierung
der Universität Oldenburg
Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Einführung in die Programmierung Ausführbare Klassen
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Programmierung grafischer Oberflächen
Threads Richard Göbel.
Java: Reversi Spielbrett
Sortieren mit Binären Bäumen
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Java2D Richard Göbel.
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Listen Richard Göbel.
Parser - Verfahren: Rekursiver Abstieg
Sortierverfahren Richard Göbel.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Indirekte Adressierung
FH-Hof Automatisches Erzeugen von Geometrie Richard Göbel.
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
Motivation Richard Göbel.
Java: Referenzen und Zeichenketten
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
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)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Processing: Arrays & Laden von Dateien Aufbauend auf dem Beispiel: File I/O LoadFile1.
Document Object Model (DOM)
XML Standardisierungen und Abfragesprachen
Speicherung von XML- Dokumenten als Large Objects.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
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 Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Abstrakter Datentyp in C++ I - Klasse -
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Klassen und Objekte
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Template Pattern Richard Göbel.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Die Persistenzschicht
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Java für Fortgeschrittene
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.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Schnaiter XML in Java XML - Datei Zugriff mit Java.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs Übung Besprechung der Hausaufgabe
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.
Tutorium Software-Engineering SS14 Florian Manghofer.
1. Die rekursive Datenstruktur Liste 1
Implementieren von Klassen
Felder in der Informatik
 Präsentation transkript:

FH-Hof 1 XML-Parser Richard Göbel

FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen. Objekt der Klasse 'DocumentBuilderFactory' konfigurieren. Objekt der Klasse 'DocumentBuilder' mit der MethodenewDocumentBuilder' erzeugen. Für Objekt der Klasse 'DocumentBuilder' den ErrorHandler registrieren (z.B. DefaultHandler). XML-Datei jetzt mit Hilfe der Methode 'parse' in ein Objekt vom Typ 'Document' einlesen.

FH-Hof 3 XML-Parser - Programmcode DocumentBuilderFactory dbf; dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating(true); dbf.setIgnoringComments(true); dbf.setIgnoringElementContentWhitespace(true); dbf.setExpandEntityReferences(true); DocumentBuilder db; db = dbf.newDocumentBuilder(); db.setErrorHandler(new DefaultHandler()); Document doc = null; doc = db.parse(new File(inFile));

FH-Hof 4 XML-Parser - Aufbau eines Dokuments Ein Dokument ist ein Baum mit Objekten als Knoten, die das Interface Node erfüllen. Unter-Interfaces von Node sind zum Beispiel: Attr Comment Document Element Text Der Einstieg für ein Dokument ist ein Objekt vom Typ Document.

FH-Hof 5 XML-Parser- Methoden für Node getNodeType() liefert den Typ des Objekts als ganze Zahl (COMMENT_NODE, DOCUMENT_NODE, ELEMENT_NODE, TEXT_NODE) getNodeName() liefert den Namen eines Knotens. getChildNodes() liefert die Kinder (Objekt der Klasse NodeList) getLength(): Anzahl der Kinder item(int index): Zugriff auf Kind an der Position index getAttributes() liefert die Attribute als Objekt der Klasse NamedNodeMap (für ELEMENT_NODE). getNamedItem(String name): liefert Attributknoten getNodeValue() liefert den Wert eines Knotens.

FH-Hof 6 XML-Parser - Zugriff auf das Dokument... Document doc = db.parse(new File(inFile)); NodeList topNodes = doc.getChildNodes(); // DTD (falls vorhanden) Node docType = topNodes.item(0); // Topelement des Dokuments Node topElem = topNodes.item(1);...

FH-Hof 7 XML-Parser - Zugriff auf Bezeichnung und Text Node node;... // Bezeichnung des Elements... node.getNodeName()... // Textinhalt eines Elements... node.getChildNodes().item(0).getNodeValue()...

FH-Hof 8 XML-Parser - Zugriff auf Attribute und Kinder Node node;... NamedNodeMap attrs = node.getAttributes();... attrs.getNamedItem( ).getNodeV alue()... for (int index = 0; index < node.getLength(); index++) { // Kind an Position index... node.item(index)... }

FH-Hof 9 SAX-Parser - Simple API for XML Processing Ereignisgesteuerter Parser mit Methoden für das Einlesen von Elementen. Bei dem Lesen eines Elements wird die zugehörige Methode aufgerufen. Vorteile: Das Dokument muss nicht vollständig im Hauptspeicher dargestellt werden. Bereits bei dem Einlesen lassen sich Teile des Dokuments verarbeiten.

FH-Hof 10 SAX-Parser - Ansatz Objekt der Klasse 'SAXParserFactory' mit 'newInstance' erzeugen. Objekt der Klasse 'SAXParserFactory' konfigurieren. Objekt der Klasse 'SAXParser' mit 'newSAXParser erzeugen Objekt der Klasse 'XMLReader' mit Methode 'getXMLReader' von dem SAXParser' abgefragt. Handler für 'XMLReader' mit Methoden 'setErrorHandler' und 'setContentHandler' registrieren. Mit der Methode 'parse' der Klasse 'XMLReader' kann jetzt die Datei gelesen und verarbeitet werden.

FH-Hof 11 SAX-Parser - Programmcode SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setValidating(true); XMLReader xmlReader = null; SAXParser saxParser = spf.newSAXParser(); xmlReader = saxParser.getXMLReader(); xmlReader.setContentHandler(new MyContentHandler()); xmlReader.setErrorHandler(new DefaultHandler()); xmlReader.parse(inFile);

FH-Hof 12 SAX-Parser - Interface ContentHandler Interface ContentHandler fordert Methoden, die bei dem Einlesen eines XML-Dokuments aufgerufen werden. Die Klasse DefaultHandler stellt Default-Implementierungen für die Methoden von ContentHandler zur Verfügung. Der Entwickler implementiert in der Regel eine Unterklasse von DefaultHandler zum Beispiel mit den folgenden Methoden: startDocument endDocument startElement endElement characters

FH-Hof 13 SAX-Parser - StartElement, EndElement: Argumente attrs enthält die Attribute eines Elements (nur für StartElement) namespaceURI enthält einen Uniform Resource Identifier (URI) zur Festlegung des Namensraums. localName enthält den lokalen Namen innerhalb eines Namensraum. qName enthält den qualifizierten Namen mit dem vollständigen Präfix.

FH-Hof 14 SAX-Parser - characters: Argumente ch enthält ein Array mit Zeichen start enthält die Position des ersten gelesenen Zeichens length enthält die Länge der gelesenen Zeichenkette

FH-Hof 15 SAX-Parser - Aufbau eines ContentHandler public class MyContentHandler extends DefaultHandler { public MyContentHandler(...) {... } public void characters(char[] ch, int start, int length) {... } public void startDocument() throws SAXException {... } public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException{... } public void endElement(String namespaceURI, String localName, String qName) throws SAXException {... } public void endDocument() throws SAXException {... } }

FH-Hof 16 SAX-Parser - ContentHandler: rekursive Strukturen Aufbau einer Datenstruktur Stack zur Speicherung von Objekten zur internen Darstellung von Elementen Die Methode startElement erzeugt ein Objekt: Das erzeugte Objekt wird auf den Stack gelegt. Das erzeugte Objekt wird ggf. in die interne Struktur zur Darstellung des Dokuments eingefügt. Die Methode endElement löscht das oberste Element von Stack Das oberste Element des Stacks enthält das aktuelle Element, für das weitere Informationen eingelesen werden.

FH-Hof 17 Fehlerbehandlung - Definition eines Handlers class MyErrorHandler extends DefaultHandler { public void error(SAXParseException exception) {... } public void fatalError(SAXParseException exception) {... } public void warning(SAXParseException exception) {... }

FH-Hof 18 Fehlerbehandlung - SAXParseException Die Methode 'getColumnNumber' liefert die Nummer des Zeichens in der Zeile an der Fehlerposition. Die Methode 'getLineNumber' liefert die Nummer der Zeile der Fehlerposition. Mit den Methoden 'getPublicId' und 'getSystemId' kann die ID des Konstrukts mit dem Fehler abgefragt werden.