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

2022-09-02 12:48:18

我有一个从一.我想把它变成一个新的根节点。NodeDocumentNodeDocument

我能想到的唯一方法是:

Node node = someChildNodeFromDifferentDocument;

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

DocumentBuilder builder = factory.newDocumentBuilder();

Document newDocument = builder.newDocument();
newDocument.importNode(node);
newDocument.appendChild(node);

这有效,但我觉得它相当烦人冗长。有没有一种不那么冗长/更直接的方式我没有看到,或者我只需要这样做?


答案 1

代码对我不起作用 - 但是通过对这个相关问题的一些更改,我可以让它工作如下:

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

答案 2

这对我来说差不多。虽然它看起来通常很冗长,但它肯定不会比使用DOM API的其他代码更详细。不幸的是,这只是一个烦人的API。

当然,如果你已经从其他地方得到了一个,那就更简单了 - 这将摆脱你的很多代码。DocumentBuilder


推荐