将org.w3c.dom.Node转换为Document

Svi*_*ish 15 java xmlnode domdocument

我有Node一个Document.我想把Node它转换成新的根节点Document.

我能想到的唯一方法如下:

Node node = someChildNodeFromDifferentDocument;

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);

DocumentBuilder builder = factory.newDocumentBuilder();

Document newDocument = builder.newDocument();
newDocument.importNode(node);
newDocument.appendChild(node);
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我觉得这是相当恼人的冗长.我没有看到更简洁/更直接的方式,还是我必须这样做?

Mar*_*ler 14

代码对我不起作用 - 但是从这个相关问题的一些变化我可以得到它如下工作:

Node node = someChildNodeFromDifferentDocument;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document newDocument = builder.newDocument();
Node importedNode = newDocument.importNode(node, true);
newDocument.appendChild(importedNode);
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 6

这看起来对我来说是正确的.虽然它看起来通常很冗长,但它看起来并不比使用DOM API的其他代码更加冗长.不幸的是,它只是一个烦人的API.

当然,如果你已经DocumentBuilder从其他地方获得了一个更简单的东西- 那将会消除你的很多代码.