Bonjour,
Je suis en train de créer un petit parseur HTML. Je souhaite coder une fonction qui me permette de reprendre tous les noeuds (donc dans toute l'arborescence) qui ont pour attribué donné la valeur de X (X étant donnée en paramètre).
J'ai fais cela
mais il ne me semble pas que la fonction soi bien récursive.
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 /** Function to seek element by their class name * @param null for recursivity, otherwise an element * @param Name of the class * @return A vector of element */ public Vector<Element> getElementsByClassName(Element departure, String name) { Vector<Element> elts = new Vector<Element>(); if (departure == null) { departure = this.root; } List<Element> list = departure.getChildren(); Iterator<Element> it = list.iterator(); if (list.size() > 0) { Element current = (Element) it.next(); while (it.hasNext()) { System.out.println(current.getParentElement()); if (current.getAttribute("class") != null && current.getAttribute("class").equals(name)) { elts.add(current); } List<Element> children = current.getChildren(); for (int k = children.size() - 1; k > 0; k--) { this.getElementsByClassName(children.get(k), "class"); } } } return elts; }
Est ce que je m'y prends bien ?
[EDIT] J'ai oublié de préciser :
Je l'appel avec[/EDIT]
Code : Sélectionner tout - Visualiser dans une fenêtre à part Vector<Element> div = parser.getElementsByClassName(null,"menu");
Partager