通过关键字将一个大xml文件拆分为多个小文件

时间:2018-08-31 05:34:33

标签: java xml

我想通过使用Java中的XPath读取XML数据,通过关键字(R17:25:37.267或S17:23:46.470)将大型xml文件拆分为许多小型xml文件。用Java如何做到这一点? 谢谢!

[S17:23:46.470][  DE01][00037620000000000000000<?xml version="1.0" encoding="GB18030"?>
<ROOT>
  <HEAD>
    <VERSION/>
    <MSG_TYPE>2</MSG_TYPE>
     .............
    <RET_MSG/>
  </HEAD>
  <BODY>
    <REQUEST>
      <IDE_INFO>
        ......................
      </IDE_INFO>
      <IDE_INFO>
        .....................
      </IDE_INFO>
      <IDE_INFO>
       ......................
      <IDE_INFO>
        ....................
      </IDE_INFO>
      </IDE_ACC>
    </RESPONSE>
  </BODY>
</ROOT>]

[R17:25:37.267][  DE01][0002882BA207D8F5E8E6C9F<?xml version="1.0" encoding="GBK" ?><ROOT>
  <HEAD>
    <VERSION></VERSION>
    <TERM_NO>000</TERM_NO>
  </HEAD>
  <BODY>
    <REQUEST>
      .................................
      <IDE_INFOCOUNT>00000015</IDE_INFOCOUNT>
      <IDE_INFOCount>15</IDE_INFOCount>
      <IDE_INFO>
        ...............................
      </WITHDRAW_DETAIL>
    </REQUEST>
  </BODY>
</ROOT>]

1 个答案:

答案 0 :(得分:1)

您向我们显示的输入内容不是您的标题和问题中所述的XML文件,它是一个包含文本块和XML块的文件。如果那是您的实际输入,那么您将不得不自己编写某种解析器,因为XML解析器将无法处理非XML输入。

如果幸运的话,字符串<?xml...?>仅出现在XML块的开头,因此在简单的Java程序中识别它并不难。

一个更好的主意:XML是数据交换的良好标准。为什么不说服那些生成此材料的人使用XML?它将使每个人的生活更加轻松。