我有一个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);
这有效,但是我觉得它很烦人。有没有我没看到的更简单/更直接的方法,还是我只需要这样做?
该代码对我不起作用-但对此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);
这对我来说很正确。虽然看起来确实很冗长,但看起来确实比使用DOM API的其他代码要冗长得多。不幸的是,这只是一个令人讨厌的API。当然,如果您已经从其他地方获得了DocumentBuilder
,这会更简单-它将消除很多代码。