gpt4 book ai didi

java - 使用java nodelist合并多个xml文件

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:09 24 4
gpt4 key购买 nike

要使用节点列表合并多个 xml 文件,我使用了下面的代码,但它的输出文件具有重复(重复)值。

xml文件夹结构如下图

                 c:|--20140525214726/search.xml
|--20140525214727/search.xml
|--20140525214728/search.xml
|.
|.
|--20140525214736/search.xml

代码是:
我在 for 循环中使用了 int k 来循环上面显示的所有文件夹。
并将 20140525214727 到 20140525214736 的所有文件的 PropertyDetails 节点附加到 20140525214726/search.xml 文件。

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();   
domFactory.setIgnoringComments(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(new File("C:\\20140525214726\\search.xml"));
NodeList nodes = doc.getElementsByTagName("PropertyDetails");
for(int k=26; k<=37; k++){

Document doc1 = builder.parse(new File("C:\\201405252147"+k+"\\search.xml"));
NodeList nodes1 = doc1.getElementsByTagName("PropertyDetails");

for(int i=0;i<nodes1.getLength();i=i+1){
Node n= (Node) doc.importNode(nodes1.item(i), true);
nodes.item(i).getParentNode().appendChild(n);
}

}

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
Writer output = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("SeeOfXML.xml"), "UTF-8"));


String xmlOutput = result.getWriter().toString();
output.write(xmlOutput);
output.close();

我的合并多个 xml 文件的代码有问题吗?

最佳答案

您正在解析第一个文件两次。首先是这里:

Document doc = builder.parse(new File("src/main/resources/20140525214726/search.xml"));
NodeList nodes = doc.getElementsByTagName("PropertyDetails");

然后再次循环:

for (int k = 26; k <= 30; k++) {
Document doc1 = builder.parse(new File("src/main/resources/" + "201405252147" + k + "/search.xml"));

由于 k 为 26,因此您将再次从目录 20140525214726 读取文件。

将其更改为27,这样它将跳过该文件:

for (int k = 26; k <= 30; k++) { ... }

如果没有任何其他问题,它现在应该可以工作。

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

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