Parcourir un document JDOM de manière récursive
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
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
| /** 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;
} |
mais il ne me semble pas que la fonction soi bien récursive.
Est ce que je m'y prends bien ?
[EDIT] J'ai oublié de préciser :
Je l'appel avec
Code:
Vector<Element> div = parser.getElementsByClassName(null,"menu");
[/EDIT]