Hallo,
Ich versuche ein Programm zu schreiben, in dem eine XML-Datei ausgelesen wird und dann in einer JTable dargestellt wird. Dazu möchte ich die Artikel nach und nach an einen Vector anhängen und diesen dann übergeben.
Hier der Code von der Auswertung, in der auch der Vector gefüllt werden soll:
Aber so bekomme ich in die Tabelle nur x-mal den letzten Eintrag der XML-Datei. Irgendwo muss ich also einen gewaltigen Denkfehler haben. Kann mir jemand helfen?
Gruß
Alerion
Ich versuche ein Programm zu schreiben, in dem eine XML-Datei ausgelesen wird und dann in einer JTable dargestellt wird. Dazu möchte ich die Artikel nach und nach an einen Vector anhängen und diesen dann übergeben.
Hier der Code von der Auswertung, in der auch der Vector gefüllt werden soll:
Code:
public void auswertung()
{
int a, anz_untertags, b;
Article ArtDummy = new Article();
NodeList tagliste=document.getElementsByTagName("Artikel");
NodeList ChildTags;
int anz=tagliste.getLength();
Node das_tag;
String inhalt="";
short TagTyp;
System.out.println("Anzahl" + anz);
for (a=0;a<anz; a++)
{
ChildTags=tagliste.item(a).getChildNodes();
anz_untertags=ChildTags.getLength();
System.out.println("Anzahl Untertags" + anz_untertags);
for(b=0; b<anz_untertags; b++)
{
das_tag=ChildTags.item(b);
TagTyp=das_tag.getNodeType();
if (TagTyp==Node.ELEMENT_NODE)
{
if ((String)das_tag.getNodeName() == "Name")
{
ArtDummy.setArtName(das_tag.getFirstChild().getNodeValue());
}
if ((String)das_tag.getNodeName() == "Kategory")
{
ArtDummy.setArtCategory(das_tag.getFirstChild().getNodeValue());
}
if ((String)das_tag.getNodeName() == "Einheit")
{
ArtDummy.setArtUnit(das_tag.getFirstChild().getNodeValue());
}
if ((String)das_tag.getNodeName() == "Menge")
{
int dazwischen;
dazwischen = Integer.parseInt(das_tag.getFirstChild().getNodeValue());
Integer intdazwischen = new Integer(dazwischen);
ArtDummy.setArtAmount(intdazwischen);
}
if (das_tag.getNodeName() == "PPE")
{
String Peter = das_tag.getFirstChild().getNodeValue();
System.out.println(""+Peter);
float f = Float.valueOf(Peter.trim()).floatValue();
Float ffloat = new Float(f);
ArtDummy.setArtPricePerUnit(ffloat);
}
if (das_tag.getNodeName() == "gekauft")
{
String Paul = (""+das_tag.getFirstChild().getNodeValue());
if (Paul.equals("1"))
{
ArtDummy.setArtPurchased(new Boolean(true));
}
if (Paul.equals("0"))
{
ArtDummy.setArtPurchased(new Boolean(false));
}
}
System.out.println("Inhalt" + das_tag.getFirstChild());
inhalt=inhalt + das_tag.getFirstChild().getNodeValue() +"\t\t";
}
}
dummyArtData2.addElement(ArtDummy);
System.out.println(ArtDummy.getArtName() +" " + ArtDummy.getArtCategory()+" "+
ArtDummy.getArtAmount() +" " + ArtDummy.getArtUnit() +" "+ ArtDummy.getArtPricePerUnit()
+" " + ArtDummy.getArtPurchased());
}
}
Aber so bekomme ich in die Tabelle nur x-mal den letzten Eintrag der XML-Datei. Irgendwo muss ich also einen gewaltigen Denkfehler haben. Kann mir jemand helfen?
Gruß
Alerion