【问题标题】:Appending child element from other document附加来自其他文档的子元素
【发布时间】:2014-10-22 00:11:47
【问题描述】:

在我的程序中,我必须创建一些文档创建器,并且我想将创建元素的功能拆分为几个类。每个类将创建一个元素,主创建者将通过接口提取该元素并附加到主体。

问题是我不想将任何参数传递给构造函数调用,例如

    creator.createDocument()
        .setDocumentHeader(
             new DocumentHeader()
                 .setSomeValue(41)
             )

为了简化问题,假设我有一个代码

import org.w3c.dom.Document;
import org.w3c.dom.Element;

DocumentBuilderFactory dbfac1 = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder1 = dbfac1.newDocumentBuilder();
Document document1 = docBuilder1.newDocument();

DocumentBuilderFactory dbfac2 = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder2 = dbfac2.newDocumentBuilder();
Document document2 = docBuilder2.newDocument();

Element elementFromDoc1 = document1.createElement("body");
Element elementFromDoc2 = document2.createElement("someElement");

问题是,进行以下操作是否合法?

elementFromDoc1.appendChild(elementFromDoc2);

【问题讨论】:

    标签: java xml w3c


    【解决方案1】:

    您拥有的代码将引发有关元素来自不同文档的异常。

    但是,我认为您可以使用 document1.importNode。这是文档: http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Document.html#importNode(org.w3c.dom.Node,%20boolean)

    这是另一个问题的示例: Java appending XML docs to existing docs

    【讨论】:

    • 感谢您的提示,在 java 中等效于该方法的是 cloneNode(deep)
    • 对不起,卢卡斯,我从谷歌那里得到了错误的文档!我现在已经更新了。
    猜你喜欢
    • 2015-07-27
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2016-10-05
    相关资源
    最近更新 更多