A
ambipur
Hallo Zusammen, folgendes Problem stellt sich mir:
Aus einer XML-Datei möchte ich zu bestimmten Elementinhalten,
die in dem Element <name> stehen, den darunter liegende Elementinhalt <value> in ein Object - Array (private Object [][] data) abspeichern.
Diese Textwerte möchte ich in genau der Reihenfolge auch in einer Zeile der JTable darstellen.
Hier ein Beispiel-Array mit Dummy-Daten:
Ich weiss, dass es möglich ist, den Inhalt der XML-Datei in ein Java-List-Object zu speichern um ihn dann mit einem Iterator und for-Schleifen zu bearbeiten, aber wie?. Gebe hier den Inhalt der Elemente auf "System.out.println" aus.
Komme einfach mit den for-Schleifen und if-Bedingungen nicht klar.
Habe schon überlegt das ganze mit XSLT und XPath zu lösen
evtl. sogar die XML-Struktur zu überarbeiten
z.B. das <name> -Element als Attribut im <parameter>-Element unter zu bringen
um dann vom Element das Attribut abzufragen und falls gleich, alle Child-Elemente in das Array zu legen.
Aber wie lege ich die Daten (MAT_xxx) mit einer Schleife so in das Array ab, das sie eine Zeile bilden?
Hat jemand von Euch vielleicht einen TIP für mich.
Bin für jeden Hinweis dankbar.
Aus einer XML-Datei möchte ich zu bestimmten Elementinhalten,
die in dem Element <name> stehen, den darunter liegende Elementinhalt <value> in ein Object - Array (private Object [][] data) abspeichern.
Diese Textwerte möchte ich in genau der Reihenfolge auch in einer Zeile der JTable darstellen.
- MAT_Version_1, ..2,..3,..4 usw.
- MAT_Revision_1, ..2,..3,..4 usw.
- MAT_Herkunft_1, ..2,..3,..4 usw.
- MAT_KlassenArt_1, ..2,..3,..4 usw.
- MAT_KlassenID_1, ..2,..3,..4 usw.
- MAT_KlassenBenennung_1, ..2,..3,..4 usw.
- MAT_Detailbenennung_1, ..2,..3,..4 usw.
Code:
<Auftrag>
<basisdaten>
<auftragsname></auftragsname>
<kbevers></kbevers>
<wfvers></wfvers>
<bearbvon></bearbvon>
<bearbam></bearbam>
</basisdaten>
<parameter>
<name>MAT_Nr_1</name>
<value>020 160 001 767</value>
<unit></unit>
<type></type>
<description></description>
</parameter>
... und 750 weitere Parameter in dem unter <name> mein Suchkriterium steht und direkt darunter der benötigte Wert im Element <value>
</Auftrag>
Hier ein Beispiel-Array mit Dummy-Daten:
Code:
private Object[][] data ={
{new Boolean(true),"020 160 001 767", "1002", "1", "0", "intern", "ZME", "000519", "Dichtungsbalg", "" },
{new Boolean(true),"020 160 001 768", "1002", "1", "0", "intern", "ZME", "000400", "Spannring", "zapfenseitig" },
{new Boolean(true),"020 160 001 769", "1002", "1", "0", "intern", "ZME", "000400", "Spannring", "gehäuseseitig" },
};
Ich weiss, dass es möglich ist, den Inhalt der XML-Datei in ein Java-List-Object zu speichern um ihn dann mit einem Iterator und for-Schleifen zu bearbeiten, aber wie?. Gebe hier den Inhalt der Elemente auf "System.out.println" aus.
Code:
if (o instanceof Element) {
Element element = (Element) o;
System.out.println("Element: " + element.getText());
List children = element.getContent();
Iterator iterator = children.iterator();
while (iterator.hasNext()) {
Object child = iterator.next();
listNodes(child, depth+1);
}
Komme einfach mit den for-Schleifen und if-Bedingungen nicht klar.

Habe schon überlegt das ganze mit XSLT und XPath zu lösen
evtl. sogar die XML-Struktur zu überarbeiten
z.B. das <name> -Element als Attribut im <parameter>-Element unter zu bringen
um dann vom Element das Attribut abzufragen und falls gleich, alle Child-Elemente in das Array zu legen.
Aber wie lege ich die Daten (MAT_xxx) mit einer Schleife so in das Array ab, das sie eine Zeile bilden?
Hat jemand von Euch vielleicht einen TIP für mich.
Bin für jeden Hinweis dankbar.
