从其他文档追加子元素

时间:2014-08-28 07:55:19

标签: java xml w3c

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

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

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

1 个答案:

答案 0 :(得分:0)

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

但是,我认为你可以使用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