Hilfe bei rekursiver Funktion

Eichelhäer

Bekanntes Mitglied
Hallo,

warum gibt mir diese rekursive Funktion immer false zurück?
Grüble schon sehr lange....

Java:
public boolean hasContent(Node root, String tagName, String content) {

            System.out.println(root.getNodeType());

            if (root.getNodeType() == Node.ELEMENT_NODE) {
                if (root.getNodeName().equals(tagName)) {
                    if (root.getTextContent().equals(content)) {
                        return true;
                    }
                }
                else if (root.hasChildNodes())
                    return hasContent(root.getFirstChild(),tagName,content);
                else if (root.getNextSibling() != null)
                    return hasContent(root.getNextSibling(),tagName,content);

            }
            return false;
        }

Wäre für Hilfe dankbar. Viele Augen sehen mehr als 2.
 
Nimm doch mal Stift und Papier zu Hand und exerziere mal deinen Algorithmus durch.
Kleiner Tipp: die 2 else-if sind nicht richtig.
 
Zuletzt bearbeitet:
Der obige Algorithmus funktioniert jetzt ("vorwärts") also angefangen bei der Wurzel bis in unendliche veschachtelungen.
Das Problem ist nun wieder zurückzukommen. Also ausgehend von obigem Algorithmus bin ich irgendwo bei einem childnode (der auch der content sein) kann angekommen. Nun möchte ich wieder zurück. Dafür gibts getParent. Nun frage ich ab ob der parent einen nachfolger nextSibling hat oder nicht. Hat er einen Nachfolger ruft sich die Funktion mit diesem nachfolger auf und fährt weiter fort. Was macht man aber nun wenn der parent keinen next sibling hat und man noch weiter zurück möchte bis an die stelle wo die datei weiter geht. Also wie hangeltman sich wieder zurück?🙂 Vielleicht weiß jemand Rat.
 

Neue Themen


Zurück
Oben