Android xml 克隆节点

发布于 2024-12-16 01:00:38 字数 688 浏览 0 评论 0原文

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

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

The cloneNode() method seems to be buggy. When I call this method I get a DOMException whith code "NAMESPACE_ERR".

Here is my code :

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

Any idea ? Thank you in advance!

EDIT :
Important note : this code works perfectly if I run it on my computer with the Java JRE. It only fails on Android (1.6 and 2.2)

EDIT2 : and it works on Andrid 3.1. But I need to use the 2.2 version. Is there a workaround ?


Ok, I found a related bug :
http://code.google.com/p/android/issues/detail?id=2735

but now I need a workaround... any idea ?
NB : i don't want to add namespace to the created nodes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

聚集的泪 2024-12-23 01:00:38

我尝试了这段代码,似乎工作正常。我在日志中得到以下内容

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

}
});

I tried this code and seems to work fine. I got the following in the 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

Code

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

}
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文