Hallo!
Ich möchte eine XML-Datei in eine ArrayList mit einem Tupel als Datentyp packen. Dabei besteht das Tupel aus (tag,wert).
Dazu habe ich folgenden Datentypen erstellt:
Die Klasse die aus der XML-Datei eine Arraylist mit, wie oben schon beschrieben BewerberListe(tag,wert) erstellen soll:
und die XML-Datei:
Wenn ich doch dann die ArrayList mit
ausgebe kommt nicht die ArrayList heraus wie ich mir das Vorstelle
sondern:
Ich bin bisher nicht dahinter gekommen, wo mein Fehler liegt, dass dort so eine Quark dabei herauskommt. Bitte um Tipps udn Denkanstöße
Ich möchte eine XML-Datei in eine ArrayList mit einem Tupel als Datentyp packen. Dabei besteht das Tupel aus (tag,wert).
Dazu habe ich folgenden Datentypen erstellt:
Java:
public class BewerberListe {
private String tag;
private String wert;
public BewerberListe(String tag, String wert) {
this.tag = tag;
this.wert = wert;
}
public String getTag() {
return this.tag;
}
public void setTag(String tag) {
this.tag = tag;
}
public String getWert() {
return this.wert;
}
public void setWert(String wert) {
this.wert = wert;
}
}//class
Java:
import java.util.*;
import javax.xml.stream.*;
import javax.xml.stream.events.*;
import java.io.*;
public class XMLToImport {
ArrayList<BewerberListe> bl = new ArrayList<BewerberListe>();
private String tag="";
private String wert="";
public XMLToImport() {}
public ArrayList parseXML(String pfad) {
try {
FileInputStream is = new FileInputStream(pfad);
XMLInputFactory iF = XMLInputFactory.newInstance();
XMLStreamReader sr = iF.createXMLStreamReader(is);
while(sr.hasNext()) {
switch(sr.next()) {
case XMLStreamConstants.START_ELEMENT:
if(sr.getLocalName() != "bewerberliste") {
tag = sr.getLocalName();
}//if
break;
case XMLStreamConstants.CHARACTERS:
if(tag=="bewerber") {
wert = "*";
}//if
else {
wert = sr.getText();
}
break;
}//switch
if(tag != "")
bl.add(new BewerberListe(tag,wert));
}//while
//return bl;
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(XMLStreamException e) {
e.printStackTrace();
}//catch
return bl;
}//parseXML
}
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : bewerberliste.xml
Created on : 2010/12/18
Author :
Description:
Purpose of the document follows.
-->
<bewerberliste>
<bewerber>
<name>Georg</name>
<nachname>Gutsche</nachname>
<beruf>Tischler</beruf>
<ort>Cottbus</ort>
</bewerber>
<bewerber>
<name>Maik</name>
<nachname>Lehmann</nachname>
<beruf>Maurer</beruf>
<ort>Dresden</ort>
</bewerber>
</bewerberliste>
Java:
for(Object sd:xmlimp.parseXML("bewerberliste.xml")) {
System.out.println(((BewerberListe)sd).getTag()+ ", "+ ((BewerberListe)sd).getWert());
}
Code:
bewerber, ""
name, Georg
nachname Gutsche
...
Code:
bewerber,
bewerber, *
name, *
name, Georg
name, Georg
name,
nachname,
nachname, Gutsche
nachname, Gutsche
nachname,
beruf,
beruf, Tischler
beruf, Tischler
beruf,
ort,
ort, Cottbus
ort, Cottbus
ort,
ort,
ort,
bewerber,
bewerber, *
name, *
name, Maik
name, Maik
name,
nachname,
nachname, Lehmann
nachname, Maik
nachname,
beruf,
beruf, Maurer
beruf, Maurer
beruf,
ort,
ort, Dresden
ort, Dresden
ort,
ort,
ort,
ort,
ort,