Java:从元素而不是文档创建DOM元素
正如您所知,在Java中创建Dom元素的正确方法是这样做Java:从元素而不是文档创建DOM元素,java,xml,dom,Java,Xml,Dom,正如您所知,在Java中创建Dom元素的正确方法是这样做 import org.w3c.dom.Document; import org.w3c.dom.Element; Document d; Element e; e = d.createElement("tag"); 您需要使用d来生成元素,因为它需要文档上下文。(我不能100%确定原因,但可能误解了这是我问题的一部分) 我不明白的是,为什么你不能做这样的事 Element e; Element e2; e2 = e.createE
import org.w3c.dom.Document;
import org.w3c.dom.Element;
Document d;
Element e;
e = d.createElement("tag");
您需要使用d来生成元素,因为它需要文档上下文。(我不能100%确定原因,但可能误解了这是我问题的一部分)
我不明白的是,为什么你不能做这样的事
Element e;
Element e2;
e2 = e.createElement("anothertag");
既然e已经有了d的上下文,为什么我不能从元素中创建另一个元素呢?它肯定会简化我的设计,而不必到处引用文档。元素扩展了节点,节点定义了getOwnerDocument,因此您可以这样做:
e2 = e.getOwnerDocument().createElement("tag");
我花了太长时间在W3CDOM中解决文档的这个问题。所有者文档也被称为工厂(createElement(…)的概念受到限制。如果您不需要使用W3CDOM,我将改为开源XOM()。这比W3C更简单、更灵活(例如,您可以对元素进行子类化,而文档只起次要作用)。除非您希望序列化,否则XOM不需要文档。有一件事马上变得简单了,那就是在不同的树之间移动元素。太棒了,我知道一定有一些简单的东西我错过了,谢谢