recherche dans un fichier xml (castor)
Bonjour,
Après avoir changé mon fusils d'épaule et travaillé sur un code plus simple, j'aimerai créer une fonction recherche pour mon programme.
Pour le moment, j'arrive sans aucun souci à faire une recherche mais celle-ci s'arrête lorsque le prog trouve un résultat. J'aimerai que celle--ci continu à rechercher dans le fichier xml pour trouver d'autre résultats.
En gros, j'ai un un fichier.xml qui contient des canaris. Chaque canari à un nom. J'aimerai trouvé tous les canaris qui on le nom "titi" par exemple !
Je sais que ça semble idiot d'avoir des canaris de même nom mais je compte utilisé cette fonction pour rechercher tous les canaris de m^me sexe par exemple.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
public class Annee {
private List listeCanaris = new ArrayList();
private String file;
private String canariMale;
public Annee() {
super();
}
public Annee(String file) {
this();
this.file=file;
}
public Canari getCanari(String nomCanari) {
for(Iterator ite = listeCanaris.iterator();ite.hasNext();){
Canari unCanari = (Canari) ite.next();
if(nomCanari.equals(unCanari.getNom())){
return unCanari; // canari trouvé on le renvoie
}
}
// si on trouve pas ???
System.out.println("Pas de canari du nom de "+nomCanari+" trouvé dans le fichier "+file+ "!!!");
return null;
}
public void removeCanari(String nomCanari){
Canari canariASupprimer = getCanari(nomCanari);
if(canariASupprimer!=null) listeCanaris.remove(canariASupprimer);
}
public void setCanari(String nomCanari, String nouveauNom){
Canari canariAModifier = getCanari(nomCanari);
if(canariAModifier!=null) canariAModifier.setNom(nouveauNom);
}
public void addCanari(Canari unCanari) {
listeCanaris.add(unCanari);
}
public List getAnnee() {
return listeCanaris;
}
public void setAnnee(List listeCanaris) {
this.listeCanaris = listeCanaris;
}
public String getNomCanariMale(){
return canariMale; // ce qui est dans le flux
}
public Canari getNomCanariMale(String file){
//fait le lien entre le nom et les infos du canari
return Annee.lire(file).getCanari(getNomCanariMale());
} |
Pour le moment, j'arrive à retrouvé un canari en faisant:
Code:
1 2 3
|
Annee lecture = Annee.lire(nomDuFichier);
Canari unCanari = lecture.getCanari(nomDuCanari); |
Dès que le porgramme trouve un canari, il arrête les recherches! :?
Je pense donc mettre les canaris dans une arrayList pour stocker tous le canari qui ont le nom "titi" par exemple.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public ArrayList getPlusieursCanari(String nomCanari) {
ArrayList array = new ArrayList();
for(Iterator ite = listeCanaris.iterator();ite.hasNext();){
Canari unCanari = (Canari) ite.next();
if(nomCanari.equals(unCanari.getNom())){
array.add(unCanari);
}
return array;
}
} |
Avec cette fonction, je pense arriver à mes fins.... Mais j'ai cette erreur :
Code:
1 2
|
This method must return a result of type ArrayList |
Help please