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

Jor*_*nho 3 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...
Run Code Online (Sandbox Code Playgroud)

这使得元素的创建依赖于文档对象.有没有办法在没有特定文档的情况下创建元素?就像是:

Element e = DomDocument.createElement("helloElement"); //static method or so ...
return e;
Run Code Online (Sandbox Code Playgroud)

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

目的是从POJO获取DOM元素而无需传递文档任何建议?

Ian*_*rts 5

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

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

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

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