将org.w3c.dom.Node转换为文档

问题描述 投票:15回答:4

我有一个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);

这有效,但是我觉得它很烦人。有没有我没看到的更简单/更直接的方法,还是我只需要这样做?

java domdocument xmlnode
4个回答
14
投票

该代码对我不起作用-但对此related question进行了一些更改,我可以使其工作如下:

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);

6
投票

这对我来说很正确。虽然看起来确实很冗长,但看​​起来确实比使用DOM API的其他代码要冗长得多。不幸的是,这只是一个令人讨厌的API。当然,如果您已经从其他地方获得了DocumentBuilder,这会更简单-它将消除很多代码。


0
投票
也许您可以使用此代码:

0
投票
来自Node的文档
© www.soinside.com 2019 - 2024. All rights reserved.