Hallo,
ich möchte mehrere XML-Dateien einlesen und habe dazu zwei Fragen:
Frage
Sollte ich da einfach mehrere Documents aufmachen, also das Folgende mehrfach:
…
Document document1 = null;
try {
DocumentBuilderFactory dbFactory1 =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =
dbFactory1.newDocumentBuilder();
document1 = builder.parse(new File(„file.xml“));
document1.normalize();
}
catch (Exception e) {
…
}
…
Frage
Wie unterscheide ich gleiche Elemente?
Beispiel
<?xml version='1.0' encoding='utf-8'?>
Das Tag BelegNummer kommt mehrfach vor. Durch die Unterscheidung in mehrere Documents ist die Sache klar.
Aber ist das sinnvoll?
Grüße
Ben
yrow
11. April 2010 um 12:53
2
was verstehst du mit unterscheiden…mehrere docs…?!?
wenn du verschiedene arten vom gleichen tag brauchst ( für rechnung, des konto,…) versuch es mal mit „XML name space“
oder gibt mal eine bessere beschreibung deines problems…so richtig verstehe ich nicht
Hallo,
das Problem hat sich erledigt. Ich lese die Dateien nacheinander ein und hänge die Nodes in den Baum ein.
Damit hab ich dann die komplette Struktur aus allen XML-Dateien im Speicher stehen.
Vielen Dank noch für die rasche Antwort.
Grüße
Ben
yrow
12. April 2010 um 16:24
4
warum so umständlich?!?
benutze XInclude,
denn dann brauchst du nur ein (Master-Dokument) einlesen und die restlichen XML Files werden automatisch eingelesen. Voraussetzung ist, dein Parser unterstützt das XIncludes. Was bei allen gängigen Parsern (z.B. Xerces) der Fall ist.
hier schau dir mal die Referenz an.
http://www.w3.org/TR/2004/PR-xinclude-20040930/
Das Ganze ist total simpel eingebaut und funktioniert garantiert performanter als eine Eigenlösung.
hier mal ein kleines Tutorial (nicht umfassend aber als Ideen Anregung wunderbar):
http://www.xml.com/pub/a/2002/07/31/xinclude.html