将XML解析为包含List attributtes的java对象

时间:2018-06-13 18:13:31

标签: java xml parsing

我有一个将xml文件转换为java对象的硬连接,并希望得到一些帮助。问题如下:

我有一个服务器类,其中有2个子类名为 UserList EventList

UserList 包含用户列表)和 EventList 包含事件列表。

我应该从包含Event类及其所有信息的实例的文件中读取信息。我的类Event定义如下:

public class MediaPlayerUIViewModel : UserControl, INotifyPropertyChanged

在我的主课程中,我试图用JAXBContext解组xml:

@XmlRootElement
public class Event {
@XmlElement
private String title;
@XmlElement
private List<Stand> stands;


public Event(String title, List<Stand> stands) {
    this.title = title;
    this.stands = stands;


}

示例XML文件有一个示例立场:

    JAXBContext jaxbContext = JAXBContext.newInstance(Event.class);
    Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();        
    File file = new File("exhibition1_v0.1.xml");
    Event event = (Event) unmarshaller.unmarshal(file);

    System.out.println("Event name :" +event.getTitle());
    for( Stand s: event.getStands()){
    System.out.println(s);
    }

我得到以下输出:

<event>
<title>exhibition1</title>
<stands>
    <stand>
        <description>Stand 1</description>
        <area>37</area>
        <relativeDistanceSet>
            <distance>
                <description>Stand 2</description>
                <value>9</value>
            </distance>
            <distance>
                <description>Stand 3</description>
                <value>7</value>
            </distance>
            <distance>
                <description>Stand 4</description>
                <value>12</value>
            </distance>
        </relativeDistanceSet>
    </stand>
</stands>
.....

应该得到:

Event name : exhibition1
Stand{descri=null, area=0.0, relativeDistanceSet=null}

我的错误在哪里?

1 个答案:

答案 0 :(得分:0)

我认为你也需要注释班级。

这样的事情(班级成员根据你的预期输出猜出):

@XmlRootElement
public class Stand {
@XmlElement
private String descri;
@XmlElement
private double area;
@XmlElement
private List<RelativeDistanceSet> relativeDistanceSet;