2011-11-17 44 views
0

cloneNode()方法似乎是越野车。当我调用这个方法时,我得到一个代码为“NAMESPACE_ERR”的DOMException。Android xml cloneNode

这里是我的代码:

DocumentBuilder builder= DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document doc = builder.newDocument(); 
Node n1 = doc.createElement("node"); 
Node n2 = n1.cloneNode(true); 

任何想法?先谢谢你!

编辑: 重要注意事项:如果我使用Java JRE在我的计算机上运行它,此代码完美地工作。它只在Android上失败(1.6和2.2)

EDIT2:它在Andrid 3.1上工作。但我需要使用2.2版本。有没有解决方法?


好吧,我发现了一个相关缺陷: http://code.google.com/p/android/issues/detail?id=2735

但现在我需要一个解决办法...任何想法? 注意:我不想向创建的节点添加命名空间。

回答

0

我试过这段代码,似乎工作正常。我在日志

11-17 16:51:54.942: I/(15474): [email protected] 
11-17 16:51:54.942: I/(15474): [email protected] 


代码

button1.setOnClickListener(new OnClickListener(){ 

@Override 
public void onClick(View v) { 
    javax.xml.parsers.DocumentBuilder builder = null; 
    try { 
     builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
    } catch (ParserConfigurationException e) { 
     Log.e("","exception,e"); 
    } 
    Document doc = ((javax.xml.parsers.DocumentBuilder) builder).newDocument(); 
    Node n1 = doc.createElement("node"); 
    Node n2 = n1.cloneNode(true); 
     Log.i("",n1.toString()); 
     Log.i("",n2.toString()); 

} 
}); 
+0

有了Android以下?这段代码在Java JRE上完美无瑕。 – user954469