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

Java 如何用另一个(另一个文档的)XML元素替换一个XML元素?,java,xml,jaxp,Java,Xml,Jaxp,我的问题是: 我有一个解析为DOM的源XML文件。我还得到了一个XML片段(比如:text1)。片段的“根”元素将始终与源DOM中的一个元素(同名)匹配。我可以用这个替换DOM的节点吗 首先,我想到的是将字符串片段解析为DOM。然后,我尝试使用replaceChild()方法,但要么使用错误,要么只能应用于同一DOM中已经存在的节点。有人能告诉我如何做到这一点吗?您可能需要先调用getParentNode(),然后针对您拥有的父节点调用replaceChild()。谢谢,您是对的!我误解了API

我的问题是:

我有一个解析为DOM的源XML文件。我还得到了一个XML片段(比如:
text1
)。片段的“根”元素将始终与源DOM中的一个元素(同名)匹配。我可以用这个替换DOM的节点吗


首先,我想到的是将字符串片段解析为DOM。然后,我尝试使用
replaceChild()
方法,但要么使用错误,要么只能应用于同一DOM中已经存在的节点。有人能告诉我如何做到这一点吗?

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

谢谢,您是对的!我误解了API,试图在文档根上应用该方法。现在一切正常。此外,我还必须使用importNode()来从另一个文档中获取一个片段,以达到所需的目的。
//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)));