Bonsoir
J'ai écrit un programme qui extrait un fichier XML dans une liste puis je l'affiche mais le probléme est qu'il n'affiche pas tous les élements du fichier.
Mon fichier est de la forme suivante
-
1
-
1
dport
22
17;18;19;20;21;22;23
-
2
dport
80
31;34;35;36;37
-
3
dport
53
32;33
-
4
dport
25
1
quand je fais l'affichage il ne m'affiche que le 2 élements de
j'ai fait un compteur qui calcule le nombre de RT et il m'affiche 2 or j'en ai 4 element
Mon code est le suivant (c'est une fonction dans une classe publique):
static void ExtractionChamps () {
// declararion des elements de la liste
String idRR=null;
String idRT=null;
String champ=null;
String valeur=null;
String ChampAcceptRid=null;
String [] champA=null;
String RT=null;
// On crée une instance de SAXBuilder
SAXBuilder sxb = new SAXBuilder();
try
{
//On crée un nouveau document JDOM avec en argument le fichier XML
document = sxb.build(new File("RRSet.xml"));
}
catch(Exception e){}
//On initialise un nouvel élément racine avec l'élément racine du document.
racine = document.getRootElement();
//creation des noeuds
List listRR = racine.getChildren("RR");
//On crée un Iterator sur notre liste
Iterator i = listRR.iterator();
int compteurRR=0;
//Extraction des champs de l'ensemble RR
while(i.hasNext())
{
// declaration de la liste de Reject Term
ArrayList monArrayListRT = new ArrayList() ;
// un objet qui contient les strucures des Rejected Rules
ChampRR CRR=new ChampRR();
Element courant = (Element)i.next();
//Extraction du premier champ id
idRR=courant.getChild("id").getText();
CRR.id=idRR;
Element racineRT=racine.getChild("RR");
List listRT = racineRT.getChildren("RT");
//On crée un Iterator sur notre liste
Iterator j = listRT.iterator();
int compteurRT =0;
while(j.hasNext())
{
ArrayList AcceptidList =new ArrayList();
// un objet qui contient les strucures des Rejected terms RT
ChampEnsemble CE=new ChampEnsemble();
Element courant2 = (Element)j.next();
idRT=courant2.getChild("numero").getText();
champ=courant2.getChild("champ").getText();
valeur=courant2.getChild("valeur").getText();
ChampAcceptRid=courant2.getChild("AcceptRid").getText();
String []ChampA = ChampAcceptRid.split(";");
for (int k=0; k
AcceptidList.add(ChampA[k]);
}
CE.initialise(idRT, champ, valeur, AcceptidList);
monArrayListRT.add(CE);
compteurRT++;
}
System.out.println("le nombre de terme à rejetrer = "+compteurRT);
CRR.initialise(idRR, monArrayListRT);
monArrayListRR.add(CRR);
}//fin while
}//fin methode
Merci