e-business und e-service dom-bearbeitung von xml norbert helminger 26. november 2001
TRANSCRIPT
![Page 1: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/1.jpg)
E-Business und E-Service
DOM-Bearbeitung von XML
Norbert Helminger26. November 2001
![Page 2: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/2.jpg)
26.11.2001 Norbert Helminger 2
Gliederung
Einleitung: Was ist DOM? Erzeugen eines DOM-Objektes DOM-Baumstruktur Methoden
zum Lesen der Attribute zum Navigieren im Baum zum Verändern des Baumes
Kritikpunkte und Alternativen
![Page 3: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/3.jpg)
26.11.2001 Norbert Helminger 3
Was ist das Document Object Model (DOM)?
standardisiertes Objektmodell für XML-Dokumente
Abstraktion des XML-Infosets auf ein Objektmodell
Satz von Schnittstellen, der ein XML-Dokument in einer Baumstruktur darstellt
standardisiertes API für die Verarbeitung von XML-Dokumenten (W3C-DOM-Arbeitsgruppe)
![Page 4: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/4.jpg)
26.11.2001 Norbert Helminger 4
Was kann DOM?
definiert logische Struktur eines Dokuments
definiert die Möglichkeiten des Zugriffs und der Manipulation
managed die Daten eines XML-Dokuments abstrahiert die eckigen Klammern und die
Zeichenreferenzen des Serialisierungsformats
kann mit jeder Programmiersprache verwendet werden
![Page 5: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/5.jpg)
26.11.2001 Norbert Helminger 5
Arbeitsweise von DOM
liest gesamtes XML-Dokument auf einmal ein (mit Hilfe eines Parsers)
teilt es in Objekte in einer Art Baumstruktur auf
behält gesamtes Dokument im Speicher
kann auf beliebige Objekte zugreifen
kann das Dokument beliebig verändern
![Page 6: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/6.jpg)
26.11.2001 Norbert Helminger 6
Beispiel eines XML-Dokuments
<?xml version=„1.0“?>
<?order alpha ascending?>
<art xmlns=‚http://www.art.org/schemas/art‘>
<period name=„Renaissance“>
<artist>Leonardo da Vinci</artist>
<artist>Michelangelo</artist>
<artist>Donatello</artist>
</period>
<!-- insert period here -->
</art>
![Page 7: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/7.jpg)
26.11.2001 Norbert Helminger 7
DOM-Struktur des Beispiels
Dokument
ProcessingInstruction
Element
Element
Element
ElementElement
KommentarAttr
Text
Text Text Text
Wurzelknoten
Wurzelelementknoten (Dokumentelement)
![Page 8: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/8.jpg)
26.11.2001 Norbert Helminger 8
Gliederung
Einleitung: Was ist DOM? Erzeugen eines DOM-Objektes DOM-Baumstruktur Methoden
zum Lesen der Attribute zum Navigieren im Baum zum Verändern des Baumes
Kritikpunkte und Alternativen
![Page 9: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/9.jpg)
26.11.2001 Norbert Helminger 9
Erzeugen eines DOM-Objektes
abstrakte Schnittstelle:kein new-Aufruf möglich
Implementierung der DOM-Schnittstelle muss ein Objekt einer DOMImplementation zur Verfügung stellen
Aufruf der Methoden createDocument bzw. createDocumentType
![Page 10: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/10.jpg)
26.11.2001 Norbert Helminger 10
Erzeugen eines Dokuments
import org.w3c.dom.*;Document create() {
DOMImplementation impl = loadDOM();DocumentType dtd = impl.createDocumentType(
“foo:bar”, “-//FooBar//”, “foo.dtd”);return impl.createDocument(“http://foo.com/schema/”,
“foo:bar”, dtd);}
anschließend können dem Dokument Objekte hinzugefügt werden
![Page 11: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/11.jpg)
26.11.2001 Norbert Helminger 11
Einlesen eines XML-Dokuments
mit Hilfe eines DOM-Parsers
ganzes XML-Dokument kann automatisch in ein DOM-Objekt umgewandelt werden
parser.parse(xmlfile);
Document doc = parser.getDocument();
![Page 12: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/12.jpg)
26.11.2001 Norbert Helminger 12
Gliederung
Einleitung: Was ist DOM? Erzeugen eines DOM-Objektes DOM-Baumstruktur Methoden
zum Lesen der Attribute zum Navigieren im Baum zum Verändern des Baumes
Kritikpunkte und Alternativen
![Page 13: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/13.jpg)
26.11.2001 Norbert Helminger 13
Baumstruktur von DOM
Basisknoten Node
alle Knoten sind von diesem abgeleitet
definiert grundlegende Funktionalität (Attribute, Methoden und Konstanten) aller Knotentypen
Nachteil: einige Operationen nicht auf jeden Knotentyp anwendbar
![Page 14: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/14.jpg)
<<interface>>Node
+getNodeType()+getNodeName()+getNamespaceURI()+getPrefix()+getLocalName()+getNodeValue()+getParentNode()+getChildNodes()+getFirstChild()+getLastChild()+getPreviousSibling()+getNextSibling()+getAttributes()+getOwnerDocument()+insertBefore()+replaceChild()+removeChild()+appendChild()+hasChildNodes()+cloneNodes()+supports()
<<interface>>Document
+getDoctype()+getDocumentElement()+createElementNS()+createElement()+createDocumentFragment()+createComment()+createCDATASection()+createProcessingInstruction()+createAttributeNS()+createAttribute()+createEntityReference()+getElementByTagNameNS()+getElementsByTagName()+importNode()+getElementById()
<<interface>>Attr
+getSpecified()+getOwnerElement()+setValue()+getValue()+getName()
<<interface>>Element
+getAttributeNS()+getAttributeNodeNS()+setAttributeNS()+setAttributeNodeNS()+removeAttributeNS()+removeAttributeNodeNS()+hasAttributeNS()+getElementsByTagNameNS()+getTagName()
<<interface>>EntityReference
<<interface>>Entity
+getSystemId()+getPublicId()+getNotationName()
<<interface>>Notation
+getSystemId()+getPublicId()
<<interface>>Comment
<<interface>>Text
<<interface>>CDATASection
+splitText()
<<interface>>CharacterData
+getData()+getLength()+substringData()+setData()+appendData()+insertData()+deleteData()+replaceData()
<<interface>>NodeList
+item()+length()
<<interface>>DocumentFragment
+getSystemId()+getPublicId()
<<interface>>ProcessingInstruction
+getTarget()+getData()+setData()
<<interface>>DOMImplementation
+hasFeature()+createDocument()+createDocumentType()
<<interface>>DocumentType
+getName()+getEntities()+setNotations()+getPublicId()+getSystemId()+getInternalSubset()
<<interface>>NamedNodeMap
+getNamedItem()+getNamedItemNS()+setNamedItem()+setNamedItemNS()+removeNamedItem()+removeNamedItemNS()+item()
DOM-Schnittstellen
![Page 15: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/15.jpg)
26.11.2001 Norbert Helminger 15
Knotentypen
Node Document Element CharacterDat
a Text CDATASection
Comment Attr Entity ProcessingInstr
uction DocumentType
![Page 16: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/16.jpg)
26.11.2001 Norbert Helminger 16
Basisknoten (Node)
Attribute nodeType:
für jeden Knotentypen eine eigene Konstante (z.B. ELEMENT_NODE)
Kompatibilitätsprüfung nodeName, namespaceURI, localName, prefix:
zur Unterstützung der zugewiesenen Objektnamen
nodeValue: Wert des Knoten ownerDocument: Referenz auf das Dokument parentNode, firstChild ... benachbarte Knoten
Methoden zum Lesen, Navigieren und Verändern
![Page 17: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/17.jpg)
26.11.2001 Norbert Helminger 17
Dokumentknoten (Document)
Wurzelknoten Fabrik für neue Knoten:
createElement(), createComment() ...
hat zwei Unterknoten: Wurzelelement des Dokuments Knoten des Dokumenttyps
![Page 18: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/18.jpg)
26.11.2001 Norbert Helminger 18
Elementknoten (Element)
einzelne Tags des XML-Dokuments: Methoden zum Verändern der
Attribute Zugriff auf alle Unterelemente eines
Tagnamens:
getElementsByTagName(namespaceURI,
localname)
Beispiel: <artist>
![Page 19: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/19.jpg)
26.11.2001 Norbert Helminger 19
CharacterData-Knoten
Basisschnittstelle für Text-, CDATASection- und Comment-Knoten
grundlegende Methoden zur Textbearbeitung
keine Ausprägung in einem XML-Dokument
![Page 20: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/20.jpg)
26.11.2001 Norbert Helminger 20
Textknoten (Text)
häufigster CharacterData-Knoten repräsentiert den Zeicheninhalt
eines Elements bzw. Attributs darf kein Markup enthalten Methode normalize():
keine angrenzenden Textknoten
Beispiel: Leonardo da Vinci
![Page 21: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/21.jpg)
26.11.2001 Norbert Helminger 21
Beispiel Text.normalize()
#document
Element
#text #text #text
hello wo rld
#document
Element
#text
hello world
normalize
![Page 22: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/22.jpg)
26.11.2001 Norbert Helminger 22
CDATASection-/Comment-
Knoten
CDATASection: Unterschnittstelle von Text kann Markup enthalten
Comment: erweitert CharacterData repräsentiert Kommentare Beispiel: <!-- insert period here-->
![Page 23: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/23.jpg)
26.11.2001 Norbert Helminger 23
Attributknoten (Attr)
beinhalten variable = value Paare eines Elements
existieren nur im Kontext des Tags ownerElement: zugehöriger
Elementknoten parent == null
Beispiel: name = „Renaissance“
![Page 24: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/24.jpg)
26.11.2001 Norbert Helminger 24
Entitätsknoten (Entity)
Speichereinheiten, die Inhalte oder Inhaltsbeschreibungen enthalten
bei mehrmaligem Vorkommen können nur gelesen werden werden im DocumentType
gespeichert verkomplizieren Abarbeitung von
XML-Dokumenten
![Page 25: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/25.jpg)
26.11.2001 Norbert Helminger 25
ProcessingInstruction-Knoten
am Beginn der XML-Datei zur Kontrolle von externen
Programmen zum Ordnen von Elementen
Beispiel: <?order alpha ascending?>
![Page 26: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/26.jpg)
26.11.2001 Norbert Helminger 26
Dokumenttypknoten (DocumentType)
Platzhalter für die DTD
Liste von Entitäten und Notationen:NamedNodeMap
Attribut der Document-Schnittstelle
![Page 27: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/27.jpg)
26.11.2001 Norbert Helminger 27
DOM-Struktur des Beispiels
#document
order
artist
period
art
artistartist
#commentname
#text
#text #text #text
Dokument
Element
Attr
Text
PI/Kommentar
alpha ascending
insert period here
Leonardo da Vinci Michelangelo Donatello
Renaissance
Knotentypen
![Page 28: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/28.jpg)
26.11.2001 Norbert Helminger 28
Beziehungen zwischen Knoten
Attribute parentNode, firstChild ... definieren die Baumstruktur
parent/child-Attribute folgen lebendig jeder Änderung im Baum
dynamische Anpassung der Attribute Vorsicht bei Operationen am Baum
![Page 29: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/29.jpg)
26.11.2001 Norbert Helminger 29
Eltern-Kinder-Beziehungen
artist
period
artistartist
date-range
#text
period period
name
#text
parentNode
previousSibling nextSibling
ownerDocument
children (geordnet)
firstChild lastChild
Attribute (ungeordnet)
#document
art
![Page 30: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/30.jpg)
26.11.2001 Norbert Helminger 30
Gliederung
Einleitung: Was ist DOM? Erzeugen eines DOM-Objektes DOM-Baumstruktur Methoden
zum Lesen der Attribute zum Navigieren im Baum zum Verändern des Baumes
Kritikpunkte und Alternativen
![Page 31: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/31.jpg)
26.11.2001 Norbert Helminger 31
Methoden zum Lesen der Attribute
getNodeType getNodeName getNamespaceURI getPrefix getLocalName getNodeValue getOwnerDocument getAttributes
![Page 32: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/32.jpg)
26.11.2001 Norbert Helminger 32
Methoden zum Navigieren
getParentNode getChildNodes hasChildNodes getFirstChild getLastChild getPreviousSibling getNextSibling
![Page 33: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/33.jpg)
26.11.2001 Norbert Helminger 33
Baum durchlaufen keine Methode zum Durchlaufen des
Baumesvoid traverseTree(Node current) {
myProcessNode(current);for (Node child = current.getFirstChild(); child != null;
child = child.getNextSibling() ) traverseTree(child);
}
Durchlaufen in die andere Richtungvoid traverseTreeReverse(Node current) {
for (Node child = current.getLastChild(); child != null;child = child.getPreviousSibling() )
traverseTreeReverse(child);myProcessNode(current);
}
![Page 34: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/34.jpg)
26.11.2001 Norbert Helminger 34
Baum durchlaufen
period
#document
period
art
period period
artist artist artistartistartist artist
1
7
6
54
3
2
12
8
1110
9
1, 2, 3 ... Abarbeitungsreihenfolge der Knoten in der Methode traverseTree
![Page 35: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/35.jpg)
26.11.2001 Norbert Helminger 35
Methoden zum Verändern
appendChild insertBefore replaceChild removeChild cloneNode
![Page 36: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/36.jpg)
26.11.2001 Norbert Helminger 36
Einfügen von neuen Knoten
appendChild(Node newChild)fügt am Ende der Liste der Tochterknoten einen neuen Knoten ein
insertBefore(Node newChild, Node refChild)fügt einen neuen Knoten vor dem Referenzknoten ein
bei erneutem Einfügen eines bereits vorhan-denen Knotens wird dieser nur verschoben
![Page 37: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/37.jpg)
26.11.2001 Norbert Helminger 37
Beispiel Einfügen
import org.w3c.dom.*;
void addTwoPeriods(Document doc, Node art) {
Node newChild1 = doc.createElementNS(
“http://www.art.org/schemas/art”, “period”);
art.appendChild(newChild1);
Node newChild2 = doc.createElementNS(
“http://www.art.org/schemas/art”, “period”);
Node pos = art.getFirstChild().getNextSibling();
Node insertedNode = art.insertBefore(newChild2, pos);
assert(newChild2 == insertedNode);
assert(insertedNode == art.getChildNodes().item(1));
}
![Page 38: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/38.jpg)
26.11.2001 Norbert Helminger 38
Beispiel Einfügen
#document
period
art
period
child1 child2
period
newChild1(insertBefore)
period
#document
period
art
child1 child2
period
newChild2(appendChild)
![Page 39: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/39.jpg)
26.11.2001 Norbert Helminger 39
Ersetzen bzw. Löschen von Knoten
replaceChild(Node newChild, Node oldChild)kombiniert Einfügen und Löschen eines Knotens
removeChild(Node oldChild)entfernt einen Knoten aus dem Dokument
![Page 40: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/40.jpg)
26.11.2001 Norbert Helminger 40
Beispiel Ersetzen/Löschen
import org.w3c.dom.*;
void removeAndReplace(Document doc, Node art) {
Node newChild = doc.createElementNS(
“http://www.art.org/schemas/art”, “period”);
art.replaceChild(newChild, art.getFirstChild());
art.removeChild(art.getLastChild());
}
![Page 41: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/41.jpg)
26.11.2001 Norbert Helminger 41
Beispiel Ersetzen/Löschen
#document
period
art
period
child1 child2
#document
period
art
period
newChild child2
#document
art
period
newChild
replaceChild removeChild
![Page 42: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/42.jpg)
26.11.2001 Norbert Helminger 42
Duplizieren von Knoten
cloneNode(boolean deep) liefert eine exakte Kopie des Knotens
deep-Parameter true: Kopie inklusive Tochterknoten
import org.w3c.dom.*;
void cloneLastPeriod(Node art) {
Node clone = art.getLastChild().cloneNode(true);
art.appendChild(clone);
}
![Page 43: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/43.jpg)
26.11.2001 Norbert Helminger 43
Beispiel Duplizieren
#document
artist
period
artist artist
period
artist
art
cloneNode
appendChild
![Page 44: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/44.jpg)
26.11.2001 Norbert Helminger 44
Gliederung
Einleitung: Was ist DOM? Erzeugen eines DOM-Objektes DOM-Baumstruktur Methoden
zum Lesen der Attribute zum Navigieren im Baum zum Verändern des Baumes
Kritikpunkte und Alternativen
![Page 45: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/45.jpg)
26.11.2001 Norbert Helminger 45
Kritikpunkte an DOM
gesamtes Dokument im Speicher
keine Ein- bzw. Ausgabeoperationen
gibt auch Objekte, die zwar das Interface implementieren, sonst aber wenig machen
Probleme mit der Performance bei größeren Dokumenten
![Page 46: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/46.jpg)
26.11.2001 Norbert Helminger 46
Alternative SAX
Simple API for XML
Menge von Streaming-Schnittstellen, die ein XML-Dokument in eine lineare Sequenz bekannter Methodenaufrufe zerlegen
XML-Dokument nur einmal durchlaufen
XML-Dokument dem gewünschten Output sehr ähnlich
![Page 47: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/47.jpg)
26.11.2001 Norbert Helminger 47
Wann soll DOM verwendet werden?
XML-Dokument in einer Baumstruktur anzeigen
Elemente dem Dokument hinzugefügt
ausreichend Hauptspeicher
Verarbeitungsgeschwindigkeit ist nicht so wichtig
![Page 48: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/48.jpg)
26.11.2001 Norbert Helminger 48
Zusammenfassung
Aufbau einer DOM-Baumstruktur Methoden zum Lesen der Attribute Methoden zum Navigieren im Baum Methoden zum Verändern des
Baums Performance-Probleme
![Page 49: E-Business und E-Service DOM-Bearbeitung von XML Norbert Helminger 26. November 2001](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7f49795902118d141b/html5/thumbnails/49.jpg)
26.11.2001 Norbert Helminger 49
Literaturangaben
Don Box, Aaron Skonnard, John Lam: Essential XML - XML für die Softwareentwicklung, Addison-Wesley, 2001.
Elke Niedermair, Michael Niedermair: Das große Buch XML, Data Becker, Düsseldorf, 2001.
Mark Johnson: Programming XML in Java, Part 3 - DOMination, July 2000, http://www.javaworld.com/jw-07-2000/jw-0707-xmldom.html.
Philippe Le Hégaret: What is the Document Object Model? September 2001, www.w3.org/DOM/.