Spring batch 解析不带根元素的xml时获取异常

Spring batch 解析不带根元素的xml时获取异常,spring-batch,Spring Batch,我正在通过SpringBatch解析(读取)一个xml文件(没有根标记),该文件有多条记录,但它抛出了一个错误。它可以与根标记一起工作,但我想在不使用根标记的情况下解析它 以下是例外情况: 原因:javax.xml.stream.XMLStreamException:ParseError位于[row,col]:[640,2] 消息:根元素后面的文档中的标记必须格式正确。 位于com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.n

我正在通过SpringBatch解析(读取)一个xml文件(没有根标记),该文件有多条记录,但它抛出了一个错误。它可以与根标记一起工作,但我想在不使用根标记的情况下解析它

以下是例外情况:

原因:javax.xml.stream.XMLStreamException:ParseError位于[row,col]:[640,2] 消息:根元素后面的文档中的标记必须格式正确。 位于com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:601) 位于com.sun.xml.internal.stream.XMLEventReaderImpl.peek(XMLEventReaderImpl.java:276) 位于org.springframework.batch.item.xml.stax.DefaultFragmentEventReader.nextEvent(DefaultFragmentEventReader.java:114) 位于org.springframework.batch.item.xml.stax.DefaultFragmentEventReader.markFragmentProcessed(DefaultFragmentEventReader.java:184) ... 33多

还有我的碎片根元素名RTT

   <property name="fragmentRootElementName" value="RTT" />

以下是xml语法:

    <RTT>
    <tranaction> </transaction>
    <data></date>
    </RTT>
    <RTT>
    <tranaction> </transaction>
    <data></date>
    </RTT>
    <RTT>
    <tranaction> </transaction>
    <data></date>
    </RTT>

如果我把它放在根元素中,它可以正常工作:

    <RttData> <RTT></RTT><RTT></RTT> <RTT></RTT> <RTT></RTT></RttDate>


XML没有根元素是无效的XML。有很多方法可以解决这个问题,但最好的办法是修复从遗留系统生成的XML.XML。它是不能改变的。嗯,它可以…它是文件系统中的一个文件,对吗?您可以生成一个新文件,将其包装在一个有效的根元素中,也可以创建一个
资源
实现,该实现返回一个
输入流
,在有效的根元素前面加上前缀。您也可以研究另一个解析器,但我不确定是否有任何解析器会接受这样的真正无效的XML。。。