Chcę sprawdzić, czy dokument XML zawiera element "osoby" w dowolnym miejscu w środku. Mogę sprawdzić wszystkie elementy pierwszej generacji w bardzo prosty sposób:Powtórz wszystkie generacje węzłów XML w 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
}
}
A i mogę dodać kolejne pętle, aby przejść do podelementy, ale muszę wiedzieć, ile zagnieżdżone pętle, aby umieścić w celu ustalenia, jak daleko w dokument do wiercenia. Mógłbym zagnieździć 10 pętli, a skończyłbym z elementem personalnym zagnieżdżonym 12 elementów głęboko w danym dokumencie. Muszę być w stanie wyciągnąć element nie ma znaczenia, jak głęboko jest to zagnieżdżone.
Czy można zbierać elementy z całego dokumentu? Podobnie jak zwracać wartości tekstowe wszystkich tagów jako tablicę lub iterować nad nią?
Coś podobnego do Pythona elementtree 'findAll' metoda być może:
for person in tree.findall('//person'):
personlist.append(person)
myślę, że trzeba http://en.wikipedia.org/wiki/Recursion_%28computer_science % 29. –