繁体   English   中英

Java:从Element创建DOM元素,而不是Document

[英]Java: Create DOM Element from Element, not Document

如您所知,在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.createElement("anothertag");

由于e已经具有d的上下文,为什么我不能从元素创建另一个元素? 它肯定会简化我的设计,而不必在任何地方保留对文档的引用。

Element扩展了Node,Node定义了getOwnerDocument,所以你可以这样做:

e2 = e.getOwnerDocument().createElement("tag");

http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/Node.html#getOwnerDocument()

我花了很长时间来讨论W3C DOM中的Document这个问题。 所有者文档的概念也作为工厂(createElement(...))受到限制。 如果您不需要使用W3C DOM,我将更改为开源XOM( http://www.xom.nu )。 这被开发为比W3C更简单和更灵活(例如,你可以继承元素和文档只有一个次要的角色)。 除非您要序列化,否则XOM不需要文档。 立即变得更简单的一件事是在不同树之间移动元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM