在我的程序中,我必须创建一些文档创建器,并且我想将创建元素的功能拆分为多个类。每个类将创建一个元素,主要创建者将通过接口提取该元素并将其附加到主体。
问题是我不想将任何参数传递给构造函数调用,例如
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);
您拥有的代码将引发有关该元素来自不同文档的异常。
但是,我认为您可以使用 document1.importNode 。这是文档:http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Document.html#importNode(org.w3c.dom.Node,%20boolean) http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Document.html#importNode(org.w3c.dom.Node,%20boolean)
这是另一个问题的例子:Java 将 XML 文档附加到现有文档 https://stackoverflow.com/questions/883987/java-appending-xml-docs-to-existing-docs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)