如何用另一个(另一个文档)替换XML元素?

时间:2013-02-19 23:48:44

标签: java xml jaxp

这是我的问题:

我有一个解析为DOM的源XML文件。我还有一个XML片段(如:<a>text1<b/></a>)。片段的“root”元素将始终与源DOM中的元素(同名)匹配。我可以用这个替换DOM的节点吗?

首先,我想到的是将字符串片段解析为DOM。然后,我尝试使用replaceChild()方法,但要么我使用不正确,要么只能应用于同一DOM中已存在的节点。那么有人可以展示我如何实现这一目标吗?

2 个答案:

答案 0 :(得分:1)

您可能需要先调用getParentNode(),然后针对您拥有的父节点调用replaceChild()。

答案 1 :(得分:0)

//Importing template node to the target document(this solves wrong_DOCUMENT_ERR:)   
Node importedTemplateChildNode = targetDoc.importNode(templateChildNode, true);

// Replace target child node with the template node
targetParentNode.replaceChild(importedTemplateChildNode, targetChildnode);       

Transformer tranFac = TransformerFactory.newInstance().newTransformer();
tranFac.transform(new DOMSource(targetDoc), new StreamResult(new FileWriter(targetXmlFile)));