Telefonbuch:
Ich habe eine Xml datei und eine Klasse Person:
nun habe ich ein Eingabefenster mit mehreren Suchfeldern (Textfields)
Ich habe nun mehrere Möglichkeiten die Suche durchzuführen:
1. ich Kreiere Eine "Person" aus den Eingabefeldern und übergebe sie an den DomParser
der
a: Person direkt mit XML Eintrag vergleicht
b: aus der Person einen "virtuellen" XML Knoten macht und dann vergleicht
c: aus dem XML-Eintrag jedesmal eine Person macht und die mit der übergebenen Person vergleicht
(Hier hat alles den Nachteil das bei Sucheingabe natürlich nicht alle Eigenschaften der Person vor der Übergabe eingetragen werden, sondern zum Beispiel nur die Rufnummer)
2. eine ArrayList mit Suchbegriffen ohne Zuordnung (Name <-> König) was die Ergebnisse natürlich sehr ungenau wiedergibt
Ich wollte ohne DB arbeiten, damit das Prog portabler bleibt..
WAS ISt DIE BESTE Methode oder hat jemand noch bessere Vorschläge?
ich habe eine Xml datei:Inhalt in etwa so
[XML]<?xml version="1.0" encoding="iso-8859-1"?>
<Verzeichnis>
<Person>
<Name>König</Name>
<Vorname>Karl</Vorname>
<Strasse>Elisenstr.</Strasse>
<Nr>55</Nr>
<Plz>xxxxxx</Plz>
<Ort>Krefeld</Ort>
<Msn>
<Vorwahl>0xxx</Vorwahl>
<RufNr>xxxxxxx</RufNr>
<Typ>Handy</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Msn>
<Vorwahl>0xxxx</Vorwahl>
<RufNr>xxxxxxx</RufNr>
<Typ>Tel</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Mail>
<Adresse>xxxxxxxx@web.de</Adresse>
<Info>keine</Info>
</Mail>
</Person>
<Person>
<Name>MyFirma</Name>
<Strasse>H.-v.-Wunder-Str.</Strasse>
<Nr>24</Nr>
<Plz>xxxxx</Plz>
<Ort>Wunderstadt</Ort>
<Msn>
<Vorwahl>01xx</Vorwahl>
<RufNr>xxxxxxxxx</RufNr>
<Typ>Handy</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Msn>
<Vorwahl>0xx</Vorwahl>
<RufNr>xxxxxx</RufNr>
<Typ>Tel</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Mail>
<Adresse>xxxxxxxx@yahoo.de</Adresse>
<Info>keine</Info>
</Mail>
</Person>
</Verzeichnis>[/XML]
und eine Klasse Person:
Ich habe eine Xml datei und eine Klasse Person:
nun habe ich ein Eingabefenster mit mehreren Suchfeldern (Textfields)
Ich habe nun mehrere Möglichkeiten die Suche durchzuführen:
1. ich Kreiere Eine "Person" aus den Eingabefeldern und übergebe sie an den DomParser
der
a: Person direkt mit XML Eintrag vergleicht
b: aus der Person einen "virtuellen" XML Knoten macht und dann vergleicht
c: aus dem XML-Eintrag jedesmal eine Person macht und die mit der übergebenen Person vergleicht
(Hier hat alles den Nachteil das bei Sucheingabe natürlich nicht alle Eigenschaften der Person vor der Übergabe eingetragen werden, sondern zum Beispiel nur die Rufnummer)
2. eine ArrayList mit Suchbegriffen ohne Zuordnung (Name <-> König) was die Ergebnisse natürlich sehr ungenau wiedergibt
Ich wollte ohne DB arbeiten, damit das Prog portabler bleibt..
WAS ISt DIE BESTE Methode oder hat jemand noch bessere Vorschläge?
ich habe eine Xml datei:Inhalt in etwa so
[XML]<?xml version="1.0" encoding="iso-8859-1"?>
<Verzeichnis>
<Person>
<Name>König</Name>
<Vorname>Karl</Vorname>
<Strasse>Elisenstr.</Strasse>
<Nr>55</Nr>
<Plz>xxxxxx</Plz>
<Ort>Krefeld</Ort>
<Msn>
<Vorwahl>0xxx</Vorwahl>
<RufNr>xxxxxxx</RufNr>
<Typ>Handy</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Msn>
<Vorwahl>0xxxx</Vorwahl>
<RufNr>xxxxxxx</RufNr>
<Typ>Tel</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Mail>
<Adresse>xxxxxxxx@web.de</Adresse>
<Info>keine</Info>
</Mail>
</Person>
<Person>
<Name>MyFirma</Name>
<Strasse>H.-v.-Wunder-Str.</Strasse>
<Nr>24</Nr>
<Plz>xxxxx</Plz>
<Ort>Wunderstadt</Ort>
<Msn>
<Vorwahl>01xx</Vorwahl>
<RufNr>xxxxxxxxx</RufNr>
<Typ>Handy</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Msn>
<Vorwahl>0xx</Vorwahl>
<RufNr>xxxxxx</RufNr>
<Typ>Tel</Typ>
<Nutzung>privat</Nutzung>
</Msn>
<Mail>
<Adresse>xxxxxxxx@yahoo.de</Adresse>
<Info>keine</Info>
</Mail>
</Person>
</Verzeichnis>[/XML]
und eine Klasse Person:
Java:
public class Person {
String name, firstname, street, streetnumber, city, postcode;
ArrayList<Msn> numbers= new ArrayList<Msn>();
ArrayList<Mail> mails= new ArrayList<Mail>();
public Person() {
}
public Person(String name, String firstname, String street,
String streetnumber, String city, String postcode,
ArrayList<Msn> numbers, ArrayList<Mail> mails) {
super();
this.name = name;
this.firstname = firstname;
this.street = street;
this.streetnumber = streetnumber;
this.city = city;
this.postcode = postcode;
this.numbers = numbers;
this.mails = mails;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstnam) {
this.firstname = firstnam;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public ArrayList<Msn> getNumbers() {
return numbers;
}
public void setNumbers(ArrayList<Msn> arrayList) {
this.numbers = arrayList;
}
public ArrayList<Mail> getMails() {
return mails;
}
public void setMails(ArrayList<Mail> mails) {
this.mails = mails;
}
public String getStreetnumber() {
return streetnumber;
}
public void setStreetnumber(String streetnumber) {
this.streetnumber = streetnumber;
}
public String getPerson(){
String temp = new String();
temp = getFirstname()+", "+getName()+"\n"+
getStreet()+" "+getStreetnumber()+"\n"+
getPostcode()+" "+getCity()+"\n";
int n = numbers.size();
for (int i=0;i<n;i++){
temp = temp + numbers.get(i).getType()+" : "+numbers.get(i).getPrefix()+" "+
numbers.get(i).getCallnumber()+" ("+numbers.get(i).getUsing()+")"+"\n";
}
int m = mails.size();
for (int i=0;i<m;i++){
temp = temp + mails.get(i).getMail()+"\n";
}
return temp;
}
}
Zuletzt bearbeitet von einem Moderator: