Bonjour à tous,

Voila je viens de me mettre à parser du XML depuis java et, alors que tout allait pour le mieux dans le meilleur des mondes, la commande hasPrevious() et previous() que j'effectue sur un l'itérateur d'une liste, ne sont pas des méthodes reconnues par le compilateur ...???

Chose bizarre car juste avant j'utilise la fonction hasNext() et next ...

hasPrevious() et previous ne marche-t'elle que sur des LinkedList ???

Si oui comment retourner à un élément précédent avec la fonction getChildren(String s) du package JDOM qui renvoi une liste d'élément du document XML et non une LinkedList ...

Voici la partie du code concerné :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
60
61
62
63
import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.filter.*;
import java.util.*;
import java.util.List;
import java.util.Iterator;
import java.util.LinkedList;
public class Sax{
	private org.jdom.Document document;
	private Element racine;
	private Element courrant;
	private boolean val;
	private Iterator i;
	public Sax() {
		// On crée une instance de saxbuilder
		SAXBuilder sxb = new SAXBuilder();
		try{
			// Création d'un nouveau document JDOM sur le fichier soldat.xml le parsing est terminé
			this.document = sxb.build(new File("soldat.xml"));
		}
		catch(Exception e){}
		// On initialise un nouvel élément racine avec celle du document
		this.racine = document.getRootElement();
	}
	public org.jdom.Document returnDoc(){
		return this.document;
	}
	public Element returnEle(){
		return this.racine;
	}
	public boolean rechObjXml(String str){
		List soldat = racine.getChildren("soldat");
		i = soldat.iterator();
		while(i.hasNext() && !val){
			courrant = (Element)i.next();
			Attribute type = courrant.getAttribute("class");
			String letype = type.getValue();
			if(letype.equals(str)) val=true;
		}
		return val;
	}
	public boolean objSuivant(String str){
		val=false;
		while(i.hasNext() && !val){
			courrant = (Element)i.next();
			Attribute type = courrant.getAttribute("class");
			String letype = type.getValue();
			if(letype.equals(str)) val=true;
		}
		return val;
	}
	public boolean objPrecedent(String str){
		val=false;
		while(i.hasPrevious() && !val){
			courrant = (Element)i.previous();
			Attribute type = courrant.getAttribute("class");
			String letype = type.getValue();
			if(letype.equals(str)) val=true;
		}
		return val;
	}
}



[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java