2014-02-11 109 views
0

我必須遞歸地搜索DOM結構中的特定元素,但現在我完全「卡住」,無法找到我的算法錯誤的地方。對於DOM對象的java遞歸

Alg搜索元素表,如果它存在,則必須返回true。

private boolean isCompositeExists(Node fieldNode) { 
    NodeList childNodes = fieldNode.getChildNodes(); 
    if (childNodes != null) { 
     for (int i = 0; i < childNodes.getLength(); i++) { 
     Node child = childNodes.item(i); 

     isCompositeExists(child); 

     if (child.getNodeName().equals("table")) { 
      return true; 
     } 

     } 
    } 
    return false; 
} 
+6

爲什麼要放棄遞歸調用的返回值? –

回答

2

你可能需要類似:

private boolean isCompositeExists(Node fieldNode) { 
    NodeList childNodes = fieldNode.getChildNodes(); 
    for (int i = 0; i < childNodes.getLength(); i++) { 
    Node child = childNodes.item(i); 
    if (child.getNodeName().equals("table") || isCompositeExists(child)) { 
     return true; 
    } 
    } 
    return false; 
} 

注意,你不需要檢查getChildNodes()null

+0

非常感謝:) – user2739823