gpt4 book ai didi

java - 如何使用 Java 中的 StAX 将大 xml 文件分割成小块(小 Xml 文件)

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

我有 XML,有 5 个供应商,我想将这个大文件分成 2 个供应商,每个文件起始标记为 ,结束标记为 像这样我有 5 个供应商...

如果文件大小很大,请使用 StaX 解析器,我会写几篇文章,我的文件是(>6GB),那么我如何将示例文件拆分为多个文件..

这是我的示例 XML 文件......

<?xml version="1.0" encoding="UTF-8"?>
<Shop xmlns="http://www.shpAddress.com">
<tab:Product xmlns:tab="http://www.productName.com">
<tab:Suppllier>
<col:Items xmlns:col="http://www.Items.com">
<col:Delivery>
<Prize xsi:nil="true" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<LastModifiedDate xmlns="">2020-01-28</LastModifiedDate>
</col:Delivery>
</col:Items>
</tab:Suppllier>
<tab:Suppllier>
<col:Items xmlns:col="http://www.Items.com">
<col:Delivery>
<Prize xsi:nil="true" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<LastModifiedDate xmlns="">2021-02-28</LastModifiedDate>
</col:Delivery>
</col:Items>
</tab:Suppllier>
<tab:Suppllier>
<col:Items xmlns:col="http://www.Items.com">
<col:Delivery>
<Prize xsi:nil="true" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<LastModifiedDate xmlns="">2022-02-28</LastModifiedDate>
</col:Delivery>
</col:Items>
</tab:Suppllier>
<tab:Suppllier>
<col:Items xmlns:col="http://www.Items.com">
<col:Delivery>
<Prize xsi:nil="true" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<LastModifiedDate xmlns="">2023-03-28</LastModifiedDate>
</col:Delivery>
</col:Items>
</tab:Suppllier>
<tab:Suppllier>
<col:Items xmlns:col="http://www.Items.com">
<col:Delivery>
<Prize xsi:nil="true" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<LastModifiedDate xmlns="">2024-04-28+05:30</LastModifiedDate>
</col:Delivery>
</col:Items>
</tab:Suppllier>
</tab:Product>
</Shop>

最佳答案

StaX 中存在预期的一堆样板代码。希望可以通过 SAXParser/XMLOutputFactory 对将其限制在 2 倍内。

如果 XML 格式非常稳定,那么还有另一种看起来更简单的方法。简单的正则表达式可以在<tab:Suppllier>之间选择一个文本。和</tab:Suppllier>标签。其他稳定部分(XML 的开头和结尾)可以进行硬编码并写入新的部分文件。

关于java - 如何使用 Java 中的 StAX 将大 xml 文件分割成小块(小 Xml 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59975010/

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