gpt4 book ai didi

java - 如何在没有 DOMException 的情况下使用 DOM importNode

转载 作者:搜寻专家 更新时间:2023-11-01 09:12:09 25 4
gpt4 key购买 nike

我想复制一个节点到不同的Documentg,但是它总是有DOMException about

org.apache.harmony.xml.dom.NodeImpl.setNameNS(NodeImpl.java:227)

这是我的代码

private String getString(Node seqNode) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.newDocument();

Element root = doc.createElement("Test");
doc.appendChild(root);

/* following line will cause DOMException */
doc.importNode(seqNode, true);
...
...
} catch (Exception e) {

}
}

seqNode属于其他Document

有没有人知道这个问题? :-)

最佳答案

我也遇到了这个问题。调用 importNode() 或 cloneNode() 时出现此异常。顺便说一句,我正在解析/生成的 XML 没有使用命名空间。

Android 中包含的 DOM 解析器(来自 Apache Harmony)似乎有问题。请参阅此链接:Issue 2735: Harmony DOM implementation is buggy and noncompliant .如果使用纯 Java 1.6(当然不是基于 Harmony)执行相同的代码,则一切正常。

我尝试在 DocumentBuilder 上设置 setNamespaceAware(true),但这没有帮助。

最终,我放弃了并通过使用 adoptNode() 而不是 importNode() 解决了这个问题。这有点乱伦,因为它是从一棵文档树中窃取一个节点并将其放入另一棵文档树中。但就我而言,第一个文档树只是临时的,所以我可以这样做。

关于java - 如何在没有 DOMException 的情况下使用 DOM importNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7551582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com