如何在没有文档的情况下创建DOM元素?

时间:2013-11-29 11:37:16

标签: java jaxp

使用JAXP,创建元素的“Hello world”是:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();

Element e = doc.createElement("helloElement");
// attributes, append, etc...

这使得创建依赖于文档对象的Element。有没有办法在没有特定文档的情况下创建元素?类似的东西:

Element e = DomDocument.createElement("helloElement"); //static method or so ...
return e;

实现Element接口的方式太多了!

目的是从POJO获取DOM元素而无需传递文档 有什么建议吗?

1 个答案:

答案 0 :(得分:5)

  

有没有办法在没有特定文档的情况下创建元素?

没有。设计DOM的方式Document是所有其他对象的工厂,这些对象只能存在于特定Document的上下文中。因此,您已经通过从DocumentBuilder创建一个空文档来使用正确的方法。

  

目的是从POJO获取DOM元素而无需传递文档

您可以在POJO中创建自己的Document并使用它来创建元素,但如果您的方法的调用者想要将返回的Element添加到他们自己的Document他们首先必须通过调用adoptNode来“采用”它,因为Document只允许包含它“拥有”的节点。