Dovrei riuscire a leggere gli elementi di un file xml e memorizzarli in un array, dato il seguente file xml:

<sequence name="sequenza 1">
<element name="elemento 1">
<element name="elemento 2"/>
<element name="elemento 3"/>
</element>
<element name="elemento 4"/>
</sequence>


Ho fatto questa parte di codice:


public static void main(String[] args) {
try {

SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new File("grafo.xml"));


Element root = document.getRootElement();

List children = root.getChildren();
Iterator iterator = children.iterator();

ArrayList elementi = new ArrayList();

while(iterator.hasNext()){
Element item = (Element)iterator.next();
if(item.getName()=="element")
elementi.add(item.getAttributeValue("name"));
}
for (int i=0 ; i<elementi.size() ; i++) {
System.out.println(elementi.get(i)+"\n");
}

}
catch (Exception e) {
System.err.println("Errore durante la lettura dal file");
e.printStackTrace();
}

}

come si intuisce però mi memorizza solo gli elementi di primo livello, cioè elemento 1 ed elemento 4. come faccio a prendere in considerazione anche gli elementi annidati. ovviamente il numero di annidamenti potrebbe anche essere maggiore di 2.
Grazie dell'aiuto