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

时间:2012-11-08 17:55:47

标签: java domdocument xmlnode

我有一个来自Node的{​​{1}}。我想将Document转换为新Node的根节点。

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

Document

这很有效,但我觉得它很烦人。我没有看到更简洁/更直接的方式,还是我必须这样做?

5 个答案:

答案 0 :(得分: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);

答案 1 :(得分:6)

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

当然,如果你已经从其他地方获得了DocumentBuilder,那就更简单了 - 这会消除你的很多代码。

答案 2 :(得分:1)

来自Node的文档

Document document = node.getOwnerDocument();

答案 3 :(得分:0)

也许您可以使用此代码:

String xmlResult = XMLHelper.nodeToXMLString(node);
Document docDataItem = DOMHelper.stringToDOM(xmlResult);    

答案 4 :(得分:0)

您可以简单地使用cloneNode克隆旧文档,然后像下面这样将其类型转换为Document

Document newDocument = (Document) node.cloneNode(true);