如何使用JAXB序列化多个对象

时间:2012-01-26 17:38:46

标签: java xml jaxb

我正在尝试以特定格式序列化我拥有的对象列表。 XML结构将是:

<doc>
    <data>
       <item>
          ... object properties go here ...
       </item>
    </data>
</doc>

到目前为止,我有一个元素的整个结构正常工作,但下面的代码将创建它作为XML文档本身,我需要能够遍历我的数组并将它们全部添加到上述结构。 / p>

JAXBContext context = JAXBContext.newInstance(Concern.class);

JAXBElement<Concern> jaxbElement = new JAXBElement(new QName("item"), Concern.class, concerns.get(0));
Marshaller m = context.createMarshaller();

StringWriter sw = new StringWriter();
m.marshal(new JAXBElement(new QName("item"), Concern.class, concerns.get(0)), sw);

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您需要代表“doc”和“data”标签的类(比如Doc和Data)。然后创建一个Doc实例,向其中添加一个Data实例,最后将所有Concern实例添加到Data实例。然后封送Doc实例。

答案 1 :(得分:2)

您可以执行以下操作:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Doc {

    @XmlElementWrapper(name="data")
    @XmlElement(name="item")
    private List<Concern> concerns;

}

了解更多信息