2012-03-21 28 views
0

有兩個功能添加節點的節點列表:拋出:DOMException嘗試添加節點時爲

class mynodeList implements NodeList { 


    Node root ; 
    int length = 0; 

    public mynodeList() {} 
    public Node addFirstNode(Node node) 
    { 
     root=node; 
     length++; 
     return root; 

    } 
    public void addNode(Node node) { 
    // System.out.println(root.getClass()); 
     root.appendChild(node); 
     length++; 
    } 
} 

我做了一個函數來添加第一個節點,然後其餘的,它使用了第二個。但當它去appendChild(node);給我一個DOMException其中說:attempt for adding a node to a place which is not possible. 我的代碼有什麼問題? 如果不是第一個節點的孩子,它應該在哪裏?!

回答

0

您的代碼沒有多大意義。它將第二個節點添加爲第一個節點。這不是我對節點列表的想法。 NodeList應該維護一個兄弟姐妹列表。這也是而不是應該對這些兄弟姐妹有任何副作用。

+0

@ user1064929事實上,它不是一個節點列表*是問題。只是說'那是什麼?關於那個。你需要一個清單,而你沒有清單。 – EJP 2012-03-23 06:03:12

0

好吧,我希望這能回答你的問題:

NodeList接口提供對有序 採集節點的抽象

甲骨文(Documentation)的意思是,你可以使用任何你想要的集合,這只是創建一些抽象。所以你可以嘗試下面的代碼(我無法測試它,我沒有Node實現),如果你想要的東西超過集合,我建議你看看there

public class NodeList implements org.w3c.dom.NodeList{ 

    List<Node> childs; 

    public NodeList() { 
     childs = new ArrayList<Node>(); 
    } 

    public void addNode(Node node) { 
     childs.add(node); 
    } 

    @Override 
    public Node item(int i) { 
     return childs.get(i); 
    } 

    @Override 
    public int getLength() { 
     return childs.size(); 
    } 
} 
相關問題