Android xml cloneNode

时间:2011-11-17 10:36:28

标签: android xml

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

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

1 个答案:

答案 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());

}
});