gpt4 book ai didi

java - 使用 Java 将两个 XML 文件合并为一个 XML 文件

转载 作者:行者123 更新时间:2023-12-02 07:52:08 30 4
gpt4 key购买 nike

我不知道如何继续组合两个不同的 XML 文件(具有相同的结构)。当我对此进行一些研究时,人们说必须使用像 DOM 或 StAX 这样的 XML 解析器。但我不能用常规的 IOStream 来做到这一点吗?我目前正在尝试在 IOStream 的帮助下完成,但这并不能解决我的目的,它更复杂。

例如,我尝试过的是;

               public class GUI {

public static void main(String[] args) throws Exception {

// Creates file to write to
Writer output = null;
output = new BufferedWriter(new FileWriter("C:\\merged.xml"));
String newline = System.getProperty("line.separator");

output.write("");

// Read in xml file 1
FileInputStream in = new FileInputStream("C:\\1.xml");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;

while ((strLine = br.readLine()) != null) {

if (strLine.contains("<MemoryDump>")){
strLine = strLine.replace("<MemoryDump>", "xmlns:xsi");
}
if (strLine.contains("</MemoryDump>")){
strLine = strLine.replace("</MemoryDump>", "xmlns:xsd");
}

output.write(newline);
output.write(strLine);

System.out.println(strLine);
}

// Read in xml file 2
FileInputStream in = new FileInputStream("C:\\2.xml");
BufferedReader br1 = new BufferedReader(new InputStreamReader(in));
String strLine1;

while ((strLine1 = br1.readLine()) != null) {

if (strLine1.contains("<MemoryDump>")){
strLine1 = strLine1.replace("<MemoryDump>", "");
}
if (strLine1.contains("</MemoryDump>")){
strLine1 = strLine1.replace("</MemoryDump>", "");
}

output.write(newline);
output.write(strLine1);

请您告诉我如何通过添加其他内容来合并两个 XML 文件。如果您也能为我提供一些示例链接,那就太好了..!

提前谢谢您..! System.out.println(strLine1); }

}

最佳答案

不太确定您要做什么。合并是指:

a.您想要合并 2 个 DOM 的内容并提出一个带有附加节点的对象模型(有效的模型)

b.您想要一个接一个地合并 2 个文件,而不关心实际内容

如果是,则使用 XML 解析器。当然,您可以手动编写该内容并尝试将流处理为 dom 对象,但您将重写这些解析器的很多功能。为什么要重写已经存在的东西。

如果是b,就做一个哑副本。复制第一个文件(再次使用实用程序,像 apache common 的 FileUtil 这样的东西允许您复制文件。除非必要,否则不要写入),打开复制文件的 IO 流,然后读写第二个文件。

关于java - 使用 Java 将两个 XML 文件合并为一个 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110827/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com