2016-05-09 2 views

答えて

1

私は、あなたが最初にあなたの親ノードのすべての子ノードを取得し、単にその後、各ノードのnew Layoutを作成することができ、深い再帰関数と考えます。

private List<Node> createChildList(Node parent) { 
     List<Node> result = new ArrayList<Node>(); 
     NodeList children = parent.getChildNodes(); 
     for (int i = 0; i < children.getLength(); i++) { 
      result.addAll(createChildList(children.item(i))); 
     } 
     return result; 
    } 
+0

ありがとう、ちょうど私が必要なもの – H3x0n

0

if条件の後で、子ノードを取得して、すべての子ノードをチェックするforループを作成します。なぜあなたはwhileループが必要なのか分かりません。ちょうどこのままにしておきます。また、カウント変数は無駄です。

private List<Layout> createChildList(Node node) { 
     List<Layout> layouts = new ArrayList<>(); 
     //int count = 0; WHY TO USE THIS USE THIS? 
     Node child = node.getChildNodes().item(0); 
     if(child == null){ 
      break; 
     } else{ 
      NodeList children = child.getChildNodes(); 
      for (int i = 0; i < children.getLength(); i++) { 
       child = children.item(i); 
       Layout layout = new Layout(); 
       layout.setName(child.getNodeName()); 
       layouts.add(layout); 
     } 

     return layouts; 
    } 
+0

が、子どもたちですからなど、関係なく、彼らは息子や孫である場合に、同じリスト内のすべての子どもを持ちたいんだろうも.getChildNotes() – H3x0n

+0

を持っていますか? – Biurrun

+0

いいえ私はすべての子供たち、子供たちと子供たちの中にあるすべての子供たちを繰り返す必要があります... – H3x0n

関連する問題