2014-09-22 2 views
0

У меня есть файл xmls со следующей структурой. Я могу читать заголовки, данные и трейлер, используя три разных шага с работой и хранением данных в базе данных. Я могу читать данные из базы данных и писать эти элементы в трех разных файлах, но мне нужно создать выходной файл с той же структурой, что и входной файл. Как объединить заголовки, данные и трейлер и создать выходной XML-файл с помощью StaxEventItemWriter? Обновление. Будет только один экземпляр заголовка и трейлера, элемент данных будет от 1 до n.Wtiring xml с мулинированными корневыми элементами для StaxEventItemWriter

<?xml version="1.0" encoding="UTF-8"?> 
<rootelement> 
    <Header> 
     <element1>value</element1> 
     <element2>value</element2> 
    </Header> 
    <Data> 
     <element1>value</element1> 
     <element2>value</element2> 
    </Data> 
    <Data> 
     <element1>value</element1> 
     <element2>value</element2> 
    </Data> 
    <Data> 
     <element1>value</element1> 
     <element2>value</element2> 
    </Data> 
    <Trailer> 
     <element1>value</element1> 
     <element2>value</element2> 
    </Trailer> 
</rootelement> 

ответ

0

Посмотрите на верхние и нижние колонтитулы обратных вызовов в StaxEventItemWriter. Вариант использования, который вы описываете, - это именно то, для чего он предназначен. Имя вашего корневого тега будет rootElement, тогда вы будете использовать два StaxWriterCallback s, один для заголовка и один для трейлера. Вы можете увидеть пример заголовка в действии в тестовом модуле находится здесь: https://github.com/spring-projects/spring-batch/blob/master/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemWriterTests.java#L347

Вы можете прочитать больше о StaxWriterCallback в документации здесь: http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/xml/StaxWriterCallback.html

+0

vola..it работал! Спасибо за вашу помощь. – Vinay

Смежные вопросы