繁体   English   中英

jaxb解组xml元素以包含一些字段

[英]jaxb unmarshal xml element to object with some fields

我有一些课:

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吗?

我不了解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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM