java - 使用文档类在java中合并xml文件

标签 java xml

我的要求是合并多个 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);

            }

提前谢谢您!!

最佳答案

您无法从其他文档添加节点。您有两个选择:

  1. 尝试 Document.adoptNode将所有者文档更改为目标文档。如果失败(即返回 null),您只有选项 2。
  2. 使用Document.importNode创建适应目标文档/DOM 实现的节点副本。

请记住,即使如此,您也无法像在示例代码中尝试那样将 Document 添加到另一个 Node 。您可以使用上面的两个选项将源文档的子节点添加到目标节点。您通常想要的是将单个根文档元素添加到另一个元素。

关于java - 使用文档类在java中合并xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097774/

相关文章:

java - 通用 JAXB 到由相同 XML 包装的不同 XML

java - 文本按钮显示为点而不是普通文本

xml - 修复 perl 文本>xml 转换器脚本

Java 在按键上旋转椭圆

java - Guice-JPA persistence.xml 不从属性文件中读取占位符

java - 将文件从一台服务器复制到另一台服务器

java - 使用正则表达式替换 +{user}100 等表达式

python - 我如何映射到字典而不是列表?

java - 如何调用单例方法?

xml - 在我 CTRL-C 之前,logstash 不打印输出