14
1 Java und XML Stephan Baldes 14.04.2008

1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

Embed Size (px)

Citation preview

Page 1: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

1

Java und XMLStephan Baldes

14.04.2008

Page 2: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

2

Warum XML?

In welchem Format wurden die Daten gespeichert?

Bernd;Thomas;3;5;1987;Freiburg;KarlsruhePeter;Maier;7;9;1980;Karlsruhe;Freiburg

CSV(Comma-Separated Values)

Im CSV-Format ist die Bedeutung der Daten nicht bekannt.

Page 3: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

3

Java und XML

Was ist XML?

Page 4: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

4

XML: EXtensible Markup Language

• 1998: XML-Spezifikation World Wide Web Consortium (W3C)

• Darstellung hierarchisch strukturierter Daten in Form von Text.

• Austausch von Daten zwischen verschiedenen Systemen: Menschen- und maschinenlesbar.

• Idee: Trennung von Inhalt und Darstellung.

• Techniken: DTD, Schema, XSLT, XPATH,...

Page 5: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

5

book

<Qty unit="g"></Qty>↔

XML: EXtensible Markup Language

Page 6: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

6

XML: EXtensible Markup Language<?xml version="1.0" encoding="ISO-8859-1" ?> <wikipedia> <titel>Wikipedia Städteverzeichnis</titel> <!-- Jetzt folgen alle Städte --> <eintrag> <stichwort>Genf</stichwort> <eintragstext>Genf ist der Sitz von ...</eintragstext> </eintrag> <eintrag> <stichwort>Köln</stichwort> <eintragstext>Köln ist eine Stadt, die ...</eintragstext> </eintrag> </wikipedia>

• Ausdrücke sind wohlgeformt.

• Meta-Tags, Kommentare

• Das Dokument enthält nur ein Wurzelelement.

Page 7: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

7

Arbeitsauftrag CSV-Datei in wohlgeformtes XML-Dokument

umwandelnKopieren Sie die Datei adressliste.csv aus dem Vorlagenlaufwerk und

wandeln Sie sie in ein wohlgeformtes XML-Dokument um. Speichern Sie die Datei unter dem Namen adressliste.xml und öffnen Sie

sie im Firefox.

Zeit: 5 Minuten

Page 8: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

8

Java und XML

XML-Verarbeitung in Java

Page 9: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

9

• JDK stellt ab Version 1.4 alle benötigten Technologien bereit.

• Zwei Ansätze:

• SAX: Simple API for XML

• DOM:Document Object Model

• Andere Ansätze: StAX, JDOM, XSLT, XPATH, …

public void startElement(String name, …) { System.out.println("Start element: " + name); } …

XML-Verarbeitung in Java

Page 10: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

10

•XMLReader xr = XMLReaderFactory.createXMLReader(); xr.parse(new InputSource(new FileReader("Personen.xml")));

• public void startElement(…,String name, Attributes atts) { System.out.println("Start element: " + name); }

• public void endElement(…,String name, Attributes atts) { System.out.println("End element: " + name); }

• public void characters(char ch[], …) { System.out.println("Content: " + String.valueOf(ch));}

SAX

Page 11: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

11

SAX Beispiel

Page 12: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

12

SAX Beispiel

Page 13: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

13

• DocumentBuilderFactory factory = … DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(…"Personen.xml"...);

• Node root = document.getFirstChild();

• NodeList personListe = root.getChildNodes();

• Node aktuellePerson = personListe.item(i);

• String tagName = aktuellesTag.getNodeName();

• String tagInhalt = aktuellesTag.getTextContent();

DOM

Page 14: 1 Java und XML Stephan Baldes 14.04.2008. 2 Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg

14

DOM Beispiel