我的要求是合并多个 xml 文件,其中每个文件将在 while 循环中生成,并将组合的 xml 文件合并到根 xml。我尝试遵循以下结构,但它不起作用。任何人都可以建议这是正确的方法吗?另外,我不能选择任何 xpath 选项,因为每次创建的 xml 都是动态的...但命名空间是相同的。
public Document xmlCreation(){
Document document1 = createDocument();
Node node1 = document1.getDocumentElement(); //Root node
//xml root node created
Document document2 = createDocument();
while(condition)
{
// some steps
Document document3 = createDocument();
Node node3 = document3.getDocumentElement(); //child node
// xml created
node3.appendChild(document2);
}
Node node2 = document2.getDocumentElement();
addChildNode(document1,node2);
return(document1);
}
提前谢谢您!!
最佳答案
您无法从其他文档添加节点
。您有两个选择:
- 尝试
Document.adoptNode
将所有者文档更改为目标文档。如果失败(即返回null
),您只有选项 2。 - 使用
Document.importNode
创建适应目标文档/DOM 实现的节点副本。
请记住,即使如此,您也无法像在示例代码中尝试那样将 Document
添加到另一个 Node
。您可以使用上面的两个选项将源文档的子节点添加到目标节点。您通常想要的是将单个根文档元素添加到另一个元素。
关于java - 使用文档类在java中合并xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097774/