【发布时间】:2016-04-28 15:44:24
【问题描述】:
我在删除和复制同一个 xml 元素时遇到了一些问题。问题是我有 2 个 xml 文件,在比较两者之后,我想删除那些仅在 file1 中的元素,并且在同一个副本中,我想将这些元素复制到新生成的 xml 中。我可以删除元素,但无法将它们复制到另一个 xml 文件中。
代码如下:
for (Map.Entry<String, Element> entry : Map1.entrySet()) {
String key = entry.getKey();
if (!Map2.containsKey(key)) {
Map1.remove(key);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
Document doc= builder.newDocument();
Element rootElement =
doc.createElementNS("", "missing");
doc.appendChild(rootElement);
//here i want to copy the deleted element in new xml file.
//rootElement.appendChild(Map1.get(key));
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult newXml = new StreamResult(new File("C:/user/desktop/Output.xml"));
transformer.transform(source, newXml);
}
}
【问题讨论】:
-
如果您可以发布您的 XML 示例,我将提交一个最高效/最简洁的代码示例,比您发布的笨拙的 dom 代码要好得多...