gpt4 book ai didi

java - 以GB为单位分割一个巨大的XML,保留页眉和页脚 - 相同的结构

转载 作者:行者123 更新时间:2023-11-30 05:15:55 26 4
gpt4 key购买 nike

我的程序将接收大小高达 8GB 到 10GB 的 XML,其结构如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE gsafeed PUBLIC "-//Google//DTD GSA Feeds//EN" "">
<gsafeed>
<header>
<datasource>Name</datasource>
<feedtype>incremental</feedtype>
</header>
<group>
<record url="" action="add" mimetype="text/html" >
<content><![CDATA[ <html> <body><<br></body></html> ]]>
</content>
</record>
<record url="" action="add" mimetype="text/html" >
<content><![CDATA[ <html> <body><<br></body></html> ]]>
</content>
</record>
<record url="" action="add" mimetype="text/html" >
<content><![CDATA[ <html> <body><<br></body></html> ]]>
</content>
</record>
</group>
</gsafeed>

现在我必须以 1 GB(大约)的形式拆分此 XML 文件,保留相同的结构,即每个拆分文件应具有相同的页眉和页脚,但 <record> 的数量除外。节点会更少。

我必须在 JDK 1.4 中执行此操作。

请提出建议。

谢谢

最佳答案

你提前知道页脚吗?如果是这样,您只需要一个流 API,例如 StAX或 SAX - StAX 可能会比 SAX 更容易,但它没有内置到 Java 1.4 中,因此您需要额外的依赖项。

基本上你需要做这样的事情:

  1. 阅读标题并记住它
  2. 读取记录元素。如果没有更多,请转到步骤 7。
  3. 您当前有打开的文件吗?如果没有,请打开一个并将 header 写入其中。
  4. 将记录元素写入当前文件。
  5. 您是否已达到文件大小限制?如果是这样,请编写页脚并将其关闭。
  6. 返回第 2 步。
  7. (阅读完毕。)如果您有打开的文件,请写入页脚并关闭它。

关于java - 以GB为单位分割一个巨大的XML,保留页眉和页脚 - 相同的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1304266/

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