cloneNode()方法似乎有问题。当我调用这个方法时,我得到一个DOMException代码“NAMESPACE_ERR”。
这是我的代码:
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 :(得分:0)
我尝试了这段代码,似乎工作正常。我在Log
中得到了以下内容11-17 16:51:54.942: I/(15474): org.apache.harmony.xml.dom.ElementImpl@41413f88
11-17 16:51:54.942: I/(15474): org.apache.harmony.xml.dom.ElementImpl@41414040
代码
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());
}
});