XML-Parsing durch DOM

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich hätte eine Konzept-Frage bzgl. DOM, Parser und XML-Dokument:
ich habe ein bisschen gegoogelt, leider verstehe ich das Konzept noch nicht so richtig. Wenn ich also ein XML-Dokument habe und möchte dieses verarbeiten, dann könnte ich dies mit Hilfe von DOM tun.

Was ist also DOM?
Ich habe so verstanden, dass es DOM-API gibt. Nach Wiki verstehe ich DOM als die Repräsentation von beispielweise einem XML-Dokument. Durch dieses Dokument kann dann ein Parser parsen. Nach dem Parsing entsteht dann ein sogenanntes DOM-Objekt. Ist das richtig so? Was macht man dann mit dem DOM-Objekt?

Vielen Dank.

Schöne Grüße aus Rheinland,

Eure Ratna
 
Zuletzt bearbeitet:

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

bin inzwischen etwas schlauer geworden:
DOM ist ersmal ein Standard, wie ein XML-Dokument auszusehen hat, nämlich in Form eines Graphbaumes. Diese Umwandung von XML-Dokument auf den Graphbaum erledigt der DOM-Parser. Der Graphbaum wird auch als DOM-Objekt bezeichnet. Danach kann auf diesem Graphbaum traversiert werden, dies bietet die DOM-API an.

Nun meine Frage:
Ist es möglich, dass auf dem Graphbaum mittels XSLT-Parser transformiert wird?

Vielen Dank.

Schöne Grüße aus Rheinland,

Eure Ratna
 
Zuletzt bearbeitet:

alxy

Erfahrenes Mitglied
Ähm,

DOM = Document Object Model ist, wie du bereits herausgefunden hast, eine Spezifikation, eine abstrakte Schnittstelle sozusagen, von der es jetzt konkrete Ableitungen gibt, wie zB
XML = Extensible Markup Language. Ein XML-Dokument ist somit sozusagen schon eine Baumstruktur, das erfordert die Schnittstelle ja ;) Da du auchnoch Graphbaum ansprichst - meinst du damit tatsächlich eine grafisch sichtbare Struktur? Die hier angesprochene Struktur ist "reines" XML erstmal, zum Präsentieren der Daten kann dann XSLT verwendet werden. Guck dir dieses beispiel dazu an: http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog
Die arbeiten zusammen wie HTML und CSS ;)
 

oraclin25

Erfahrenes Mitglied
Hallo alxy,

vielen Dank für die rasche Antwort. Ich habe soweit verstanden, was mit DOM und XSLT gemeint ist.
Bei einem Punkt bin ich mir nicht so sicher:
1. Ich habe ein XML-Dokument
2. Ich parse das Dokument mit einem DOM-Parser und erhalte den Graphbaum
3. Auf diesem Graphbaum kann ich das Dokument mit einem XSLT-Applikation in eine Ausgabe transformieren.

Meine Frage:
Soweit ich weiss, kann auf einem XML-Dokument direkt eine XSLT-Applikation ablaufen. Warum möchte man bei obiger Konstellation das XML-Dokument zunächst einmal mittels DOM, bevor anschließend mit einer XSLT-Applikation verarbeiten?

Vielen lieben Dank zusammen.

Schöne Grüße aus Rheinland,

Eure Ratna
 

alxy

Erfahrenes Mitglied
Soviele lustige Wörter....

2. Ich parse das Dokument mit einem DOM-Parser und erhalte den Graphbaum
3. Auf diesem Graphbaum kann ich das Dokument mit einem XSLT-Applikation in eine Ausgabe transformieren.

Zu 2.) Was meinst du mit Graphbaum? Was ist für dich ein DOM-Parser? [Ein Parser verwandelt grundsätzlich erstmal eine Eingabe (zB im XML-Format) in ein für das Programm/den Computer weiterverarbeitbares Format, zB um dann später spezielle Dinge(Knoten) auslesen oder verändern zu können]

Zu 3.) Du kannst eine XML-Datei auch so eifnach mit jedem beliebigen Editor/Browser/Textverrbeitungsprogramm öffnen und darstellen ;) Nur natürlich nicht so schön.
 

oraclin25

Erfahrenes Mitglied
Hallo hela und alxy,

vielen Dank für Eure Hilfestellungen. Aus Wiki:

Die Sprache XSLT beschreibt die Umwandlung eines XML-Derivats (auch XML-Dialekt oder XML-Anwendung genannt), in Form eines XML-Dokuments, in ein anderes Dokument, Transformation genannt.
...
Dazu werden die XML-Dokumente als logischer Baum betrachtet: Die Quellbäume der zu transformierenden Dokumente und die durch die Transformation entstehenden Zielbäume der zu erzeugenden Dokumente

Mit meiner Frage meinte ich:
Kann ich die notwendige Baumstruktur für XSLT-Transformation mit Hilfe von einem DOM-Parser erzeugen? Also, ich habe das so verstanden, dass ein DOM-Parser lediglich dazu da ist, um die Baumstruktur eines XML-Dokuments zu erzeugen. Dass man dann auf dieser Baumstruktur die DOM-API verwenden kann, das lass ich erstmal ausgeklammert.

Ich möchte gerne verstehen, ob es einen Zusammenhang gibt zwischen DOM-Parser und XSLT. :(

Vielen lieben Dank.

Schöne Grüße aus Rheinland,

Eure Ratna
 

saftmeister

Nutze den Saft!
Ich möchte gerne verstehen, ob es einen Zusammenhang gibt zwischen DOM-Parser und XSLT.

Hoffentlich nicht ;-)

Normalerweise wird ein XSLT-Processor seine eigene Bibliothek zum Parsen den XML mitbringen, da die meisten DOM-Parser für den Anwendungszweck der Transformation nicht optimiert sind.

Der XSLT-Processor hat natürlich eine ähnliche Funktionalität, um Features wie X-Path zur Verfügung stellen zu können.

Hier mal ein Zitat:
http://www.ibm.com/developerworks/xml/library/x-xslang/ hat gesagt.:
Although modern XSLT processors don't use DOM internally for performance reasons (an optimized library is more efficient), it helps to think of XSLT as a language that converts a DOM tree into another DOM tree.
 

oraclin25

Erfahrenes Mitglied
Hallo saftmeister,

Danke. Mhhh... Dieser parser, nenne ich mal ein softwaremodul, ist aber einem xslt-prozessor nicht gleich, oder?

Schöne grüße aus rheinland,

Eure ratna
 

saftmeister

Nutze den Saft!
Eigentlich nicht. Ein DOM-Parser erledigt ein manchmal auch zwei Dinge:

1. (optional) Validieren des XML gegen ein Schema (XSD).
2. Parsen des XML in Objekte der für den DOM-Parser zugehörigen Programmiersprache.

Dafür benötigt der Parser natürlich das XML selbst, und eine Kenntniss darüber, welche Klasse die Struktur des XML-Knotens im Programm abbildet.

Ich kenne deine Kenntnisse nicht, aber vielleicht schaust du dir mal an, wie das in Java gemacht wird:

http://jaxb.java.net/tutorial/section_2_2_1-JAXB-Examples.html#Defining an Integer Range Type
http://jaxb.java.net/tutorial/section_2_2_2-Numeric-Types.html#Numeric Types
 
Zuletzt bearbeitet:

Neue Beiträge