Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在GB';s、 保留页眉和页脚-相同的结构_Java_Xml_Parsing_Split - Fatal编程技术网

Java 在GB';s、 保留页眉和页脚-相同的结构

Java 在GB';s、 保留页眉和页脚-相同的结构,java,xml,parsing,split,Java,Xml,Parsing,Split,我的程序将接收大小高达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</fee

我的程序将接收大小高达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>

名称
增量的
现在,我必须将这个XML文件按1 GB(大约)进行拆分,保留相同的结构,即每个拆分的文件都应该有相同的页眉和页脚,只是
节点的数量会更少

我必须在JDK1.4中这样做

请建议


谢谢

你事先知道页脚吗?如果是这样,您只需要一个流式API,比如SAX或SAX-StAX,这可能比SAX容易得多,但它没有内置到Java1.4中,因此您需要一个额外的依赖项

基本上你需要这样做:

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

  • @vtd xml作者那里没有例子,你的文档很差