jaxb unmarshal xml元素到一些字段的对象

问题描述 投票:0回答:1

我有一些课程:

class Location  {   

    private Long id;   

    private String roomTitle;  

    protected Specialization specialization;
}

public class Specialization  {

    private Long id;

    private boolean archived;

    private String title;
}

和xml:

<location id="10"> 
  <roomTitle>string</roomTitle>
  <specializationId>10</specializationId>
</location>

我可以将specializationId解组到Location.specialization.id吗?

java xml jaxb
1个回答
0
投票

我不知道jaxb,但SimpleXml可以做到。

首先,我们需要添加一些注释:

public class Location  {
    private Long id;
    private String roomTitle;
    @XmlName("specializationId")
    protected Specialization specialization;
}

public class Specialization  {
    @XmlTextNode
    private Long id;
    private Boolean archived;
    private String title;
}

请注意,archived现在是一个布尔类。常规布尔值不能为null。接下来,我们将xml序列化为Location类。

final SimpleXml simple = new SimpleXml();
final Location l = simple.fromXml(xml, Location.class);

然后我们可以打印该值

System.out.println(l.specialization.id);

这将打印

10

SimpleXml位于maven中心

<dependency>
    <groupId>com.github.codemonstur</groupId>
    <artifactId>simplexml</artifactId>
    <version>1.5.4</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.