Voglio verificare se un documento XML contiene un elemento 'persona' ovunque all'interno. Posso controllare tutti gli elementi di prima generazione in modo molto semplice:Iterare tutte le generazioni di nodi XML in java DOM
NodeList nodeList = root.getChildNodes();
for(int i=0; i<nodeList.getLength(); i++){
Node childNode = nodeList.item(i);
if (childNode.getNodeName() == "person") {
//do something with it
}
}
E e posso aggiungere ulteriori cicli di andare in sottoelementi, ma avrei dovuto sapere quanti cicli annidati per mettere in per determinare quanto lontano nel documento da trapanare. Potrei annidare 10 loop e finire con un elemento person annidato 12 elementi in profondità in un determinato documento. Devo essere in grado di estrarre l'elemento, non importa quanto profondamente sia annidato.
C'è modo di raccogliere elementi da un intero documento? Come restituire i valori di testo di tutti i tag come un array o iterare su di esso?
qualcosa di simile al di pitone elementtree 'findall' metodo forse:
for person in tree.findall('//person'):
personlist.append(person)
Penso che è necessario http://en.wikipedia.org/wiki/Recursion_%28computer_science % 29. –