gpt4 book ai didi

Java - 拆分包含许多循环的 XML 文件

转载 作者:行者123 更新时间:2023-12-02 12:47:21 26 4
gpt4 key购买 nike

我的问题对于某些人来说很简单,但对于其他人(比如我)来说却是不可能的

我有一个 XML 文件,我想将其拆分为小的 XML 文件,当然,当我达到 <DOCUMENT> 的特定计数时,我必须将其拆分。元素,我必须输入 60 <DOCUMENT>在每个小 XML 文件中。

我的文档格式如下:

<DOCS>
<PIL>
<ELEMENT1>
<ELEMENT2>
<ELEMENT1>
<PIL>
<DOCUMENT>
<ELEMENT1>
<ELEMENT2>
<ELEMENT3>
<ELEMENT4>
<SUBELEMENT1>
<ELEMENT1>
<ELEMENT1>
<ELEMENT1>
</SUBELEMENT1>
<SUBELEMENT2>
<ELEMENT1>
<ELEMENT1>
<ELEMENT1>
</SUBELEMENT2>
</ELEMENT4>
<ELEMENT5>
<ELEMENT6>
</DOCUMENT>
</DOCS>

所以我的问题是如何将其拆分为 60 <DOCUMENT>在每个文件中?并且做得非常快。

如果有人使用 Talend 提供解决方案,那就太好了。知道使用 tXMLOutput 我可以拆分它,但它只会从每个循环中获取一个元素以及我的“文档”循环的所有元素

最佳答案

您可以使用 Stax API 来读取该文件,然后将该元素的 60 个放入一个新文件中。例如,您可以阅读 this answer

在示例中,为每个元素创建文件。在您的问题中,您可以每 60 次迭代创建一个不同的文件,如下所示

int counter=0;
int fileNumber=1;
File file = new File("out/split1.xml");
StreamResult sr=new StreamResult(file);
while(xsr.nextTag() == XMLStreamConstants.START_ELEMENT) {
counter++;
if (counter>60) {
counter=0;
fileNumber++;
file = new File("out/split"+fileNumber+".xml");
sr=new StreamResult(file);
}
t.transform(new StAXSource(xsr), sr);
}

关于Java - 拆分包含许多循环的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44715695/

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