java JAXB将多个对象编组到一个文件
我想将许多对象封送到一个xml文件中。这很顺利,只是我的marshaller坚持在每个对象之前添加一个额外的<?xml version="1.0" ?>
- 将多个对象封送到同一个文件中的首选方法是什么李>
- 如果没有其他问题,那么消除这些无关的xml声明的最佳方法是什么李>
我当前的代码:
JAXBContext jc = JAXBContext.newInstance(relevantClasses);
Marshaller m = jc.createMarshaller();
XMLOutputFactory xof = XMLOutputFactory.newFactory();
XMLStreamWriter xsw = xof.createXMLStreamWriter(Channels.newOutputStream(fileWriteChannel), "UTF-8");
xsw.writeStartDocument("UTF-8", "1");
m.marshal(object1, xsw);
m.marshal(object2, xsw);
xsw.close();
这非常有效,我得到了我期望的<object1>
和<object2>
数据。。。它只是在每个对象之前有一个额外的<?xml version="1.0" ?>
# 1 楼答案
我觉得你应该加根
# 2 楼答案
一个XML文档总是有一个根元素,所以将多个对象编组到一个文件不会产生有效的XML
您应该有一个带有Object1元素和Object2元素的根对象,并封送该根对象
否则Marshaller API doc会说: