如何使用spring批处理读取复杂xml文件中的多个根元素

时间:2017-10-26 10:47:57

标签: xml spring spring-batch

我目前正在阅读一个大型的xml。我有一个xml,它将拥有多个客户端,每个客户端都有消费者(消费者数量可能很大)。每个消费者都会有消费者详细信息。

以下是示例xml文件

 <root>
  <fileId>123456</fileId>
  <fileDate>2008-09-29</fileDate>
  <fileTime>01:18:33</fileTime>
  <sourceSystemId>POST</sourceSystemId>
    <clients>
<!--1 or more repetitions:-->
      <client id="1">
        <consumers>
           <consumer>
            <acctNo>123456789</acctNo>
            <preferences>
                <preference>    
                </preference>
            </preferences>
            <points>
                <point1>
                    <val>123456789</val>
                </point1>
                <point2>
                    <val>123456789</val>
                </point2>

            </points>
          </consumer>
            !-- I can have 1 million consumers for client 1-->
      </consumers>

     </client>

     <client id="2">
       <consumers>
         <consumer>
            <acctNo>0997773273</acctNo>
            <preferences>
                <preference>    
                </preference>
            </preferences>
            <points>
                <point1>
                    <val>0997773273</val>
                </point1>
                <point2>
                    <val>0997773273</val>
                </point2>

            </points>
         </consumer>
            !-- I can have 1 million consumers for client 2-->
      </consumers>

  </client>
  </clients>      
  </root>

我可以通过将客户端指定为rootTag来读取xml,我将获取所有信息,但所有使用者都将被加载到内存中,这将导致内存问题。

如果我指定rootTag作为消费者,那么读者将根据块边读取消费者,但我不会得到我需要的信息。

请建议如何处理上述情况。

感谢你的帮助。

谢谢,

0 个答案:

没有答案