将org.w3c.dom.Node转换为Document
我有一个Document
的Node
。 我想将该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);
这很有效,但我觉得这很烦人。 我没有看到更简洁/更直接的方式,还是我必须这样做?
代码对我不起作用 – 但是从这个相关问题的一些变化我可以得到它如下工作:
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
,它就会变得更简单 – 这将消除你的很多代码。
也许你可以使用这段代码:
String xmlResult = XMLHelper.nodeToXMLString(node); Document docDataItem = DOMHelper.stringToDOM(xmlResult);