Hallo Leute,
ich habe ein Programm, dass mir Daten aus einem XML in ein Objekt einlesen soll.
mein XML sieht dummerweise so aus (Vorgabe):
ich habe einen Stax-Parser geschrieben (die Dateien können sehr groß werden).
der Parser liest mit die XML ein und speichert sie in eine HashMap< String, String >.
die HashMap würde also in unserem Beispiel so aussehen:
dann schreibe ich besagtes Objekt, dem im Konstruktor die HashMap übergeben wird.
das ganze funktioniert soweit ganz gut; ich hätte aber gerne eine elegantere Lösung.
kann ich in Java dynamisch Felder erstellen; so in die Richtung
ich hätte da in Java eine Field-Klasse gefunden; wenn möglich würd ich die set-Methode davon verwenden und die Klasse dann in weiterer Folge gleich so extenden, dass meine set-Methode den Wert des Feldes (STRING) auf eine gegebene Länge kürzt!
mfg, guni
ich habe ein Programm, dass mir Daten aus einem XML in ein Objekt einlesen soll.
mein XML sieht dummerweise so aus (Vorgabe):
Code:
<export>
<record>
<field fieldname="key1">
<string>wert1</string>
</field>
<field fieldname="key2">
<string>wert2</string>
</field>
<field fieldname="key3">
<string>wert3</string>
</field>
<field fieldname="key4">
<string>wert4</string>
</field>
<field fieldname="key5">
<string>wert5</string>
</field>
</record>
</export>
ich habe einen Stax-Parser geschrieben (die Dateien können sehr groß werden).
der Parser liest mit die XML ein und speichert sie in eine HashMap< String, String >.
die HashMap würde also in unserem Beispiel so aussehen:
Code:
map = {
key1 -> value1;
key2 -> value2;
key3 -> value3;
key4 -> value4;
key5 -> value5;
}
Code:
public class Import {
private String key1 = "";
private String key2 = "";
private String key3 = "";
private String key4 = "";
private String key5 = "";
public Import( HashMap<String,String> map ) {
Iterator<String> i = map.keySet().iterator();
while (i.hasNext()) {
String key = (String) i.next();
String value = (String) map.get(key);
key = key.toLowerCase();
if ( key.equals( "key1" ) ) {
this.key1 = value;
} else if ( key.equals( "key2" ) ) {
this.key2 = value;
} else if ( key.equals( "key3" ) ) {
this.key3 = value;
} else if ( key.equals( "key4" ) ) {
this.key4 = value;
} else if ( key.equals( "key5" ) ) {
this.key5 = value;
}
}
}
}
kann ich in Java dynamisch Felder erstellen; so in die Richtung
Code:
public class Import {
public Import( HashMap<String,String> map ) {
map2fields(map);
}
}
mfg, guni