Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JAXB序列化多个对象_Java_Xml_Jaxb - Fatal编程技术网

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

Java 如何使用JAXB序列化多个对象,java,xml,jaxb,Java,Xml,Jaxb,我正在尝试以特定格式序列化我拥有的对象列表。XML结构将是: <doc> <data> <item> ... object properties go here ... </item> </data> </doc> 到目前为止,我已经使元素的整个结构正常工作,但是下面的代码将其创建为XML文档本身,我需要能够循环遍历我的数组,并将它们全部添加到上面描述的结构中

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

<doc>
    <data>
       <item>
          ... object properties go here ...
       </item>
    </data>
</doc>
到目前为止,我已经使元素的整个结构正常工作,但是下面的代码将其创建为XML文档本身,我需要能够循环遍历我的数组,并将它们全部添加到上面描述的结构中

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);

谢谢您的帮助。

您需要表示doc和data标签的类,比如doc和data。然后创建一个文档实例,向其中添加一个数据实例,最后将所有关注的实例添加到该数据实例。然后封送Doc实例。

您需要表示Doc和data标记的类,比如Doc和data。然后创建一个文档实例,向其中添加一个数据实例,最后将所有关注的实例添加到该数据实例。然后封送文档实例。

您可以执行以下操作:

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

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

}
更多信息


您可以执行以下操作:

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

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

}
更多信息

@jtahlborn-您可以使用@XmlEleentWrappername=data来避免使用类来表示数据标记:@jtahlborn-您可以使用@XmlEleentWrappername=data来避免使用类来表示数据标记: