根据Spring Batch文档,Spring Batch可以生成格式化的xml文件,但是我失败了,所有XML元素都生成在一行中。
测试步骤
在运行作业之前,我在/spring-batch-2.1.9.RELEASE-no-dependencies/spring-batch-2.1.9.RELEASE/spring-batch-samples/src/main/resources/上进行了以下更改。作业/ iosample / xml.xml
<bean id="itemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter">
<property name="resource" ref="outputResource" />
<property name="marshaller" ref="customerCreditMarshaller2" />
<property name="rootTagName" value="customers" />
<property name="overwriteOutput" value="true" />
</bean>
<bean id="customerCreditMarshaller2" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPaths">
<list>
<value>com.test.domain</value><!-- the package is generated from a XSD -->
</list>
</property>
<property name="marshallerProperties">
<map>
<entry key="jaxb.formatted.output"><value type="java.lang.Boolean">true</value></entry>
</map>
</property>
答案 0 :(得分:1)
JAXB API(com.sun.xml.bind.v2.runtime.output.IndentingUTF8XmlOutput)支持格式化的XML。
但默认情况下,Spring Batch不使用com.sun.xml.bind.v2.runtime.output.IndentingUTF8XmlOutput来生成输出XML。
因此我们需要创建一个StreamResult让Spring Batch使用com.sun.xml.bind.v2.runtime.output.IndentingUTF8XmlOutput来生成格式化的XML。
答案 1 :(得分:0)
我假设您希望xml自己阅读。我不知道spring批处理,但你可以使用Notepad ++,下载XML工具插件,然后使用“Pretty print(仅限XML - 带换行符)”。 这不是理想的,但在一条线上阅读比一切都好。