Arbeiten mit Knoten und Elementen
Entwickler bringen häufig XML-Knoten und XML-Elemente durcheinander. Innerhalb eines XML-Dokuments sind „Knoten“ und „Element“ oft austauschbar. Wenn man mit dem DOM programmiert, unterscheiden sie sich jedoch erheblich voneinander. Vor allem sollte man daran denken, dass im DOM alle Komponenten Knoten sind. Elemente erweitern das Knoten-Objekt um Text und Attribute.
So ist z. B. das Tag <this/> ein Knoten. Erst wenn ein Attribut oder Text hinzugefügt wird (<this id=““>text</this>), entsteht ein Element. Dieses Beispiel mit Attribut und Text wird auch komplexer Knoten genannt und sollte vermieden werden. In Java (noch genauer in Xalan) werden Elemente vor allem für die Arbeit mit Attributen verwendet. Den Text-Wert eines Knotens auszulesen ist ganz einfach:
Node productNode = XPathAPI.selectSingleNode(doc,xPath);
Dies liefert den ersten Knoten, auf den die XPath Query zutrifft. Falls der Knoten einen Text-Wert besitzt (<node>my value</node), kann auf diesen zugegriffen werden, indem man wie folgt den Wert des ersten Kinderknotens ausliest:
Node x=productNode.getFirstChildNode().getNodeValue;
Denken Sie daran: Alle Komponenten in einem XML-Dokument werden als Knoten behandelt. Listing D zeigt, wie man einen „Text“-Knoten erstellt.
Die XPathAPI-Klasse wird verwendet, um Informationen aus dem XML-Dokument zu gewinnen oder neue Knoten anzulegen. XPath ist eine separate W3C-Spezifikation für die Adressierung von Elementen eines XML-Dokuments. Xalan enthält ein Package dafür (siehe Listing A).
Attribute
Um den Wert eines Attributs zu lesen, muss zunächst aus dem Knoten ein Element gemacht werden. Dies geschieht mit einer expliziten Konvertierung:
Element el = (Element) productNode;
Ich empfehle, bei der Verarbeitung von Elementen immer einen Knoten und ein Element mit denselben Daten zu benutzen. Wenn man ein Dokument aktualisiert, muss ein Knoten an- oder eingefügt werden, und kein Element. Elemente liefern Programmierern mehr Methoden für die Arbeit mit Attributen. Die beiden gebräuchlichsten sind:
String sValue = el.getAttribute("id") el.setAttribute("id",sValue)
Neueste Kommentare
1 Kommentar zu JAXP erleichtert die DOM-Entwicklung mit Java
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
Links!
Es wäre nicht schlecht, wenn die Links zu den Listings funktionierten!!