java - JAXB 简单 XML 解析

标签 java xml jaxb

请帮我找出这个 JAXB 配置有什么问题。我要解析这个 XML。它抛出异常。

异常:

group : DummyMaster@ae7b77
group : master
group : null
Exception in thread "main" java.lang.NullPointerException
    at TestDummy.main(TestDummy.java:21)

XML:

<?xml version="1.0" ?>
<master name="master">
    <detail name="detail1">     
    </detail>
    <detail name="detail2">     
    </detail>
</master>

测试:

    JAXBContext jaxbContext = JAXBContext.newInstance(DummyMaster.class);        
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();        
    DummyMaster group = (DummyMaster) jaxbUnmarshaller.unmarshal(new File("test1.xml"));
    System.out.println("group : "+group);
    System.out.println("group : "+group.getName());
    System.out.println("group : "+group.getDetails());
    System.out.println("group : "+group.getDetails().size());//Line 21

大师:

@XmlRootElement(name="master")
public class DummyMaster {
private String name;
private List<DummyDetail> details;

@XmlAttribute
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
@XmlElementWrapper
@XmlElement
public List<DummyDetail> getDetails() {
    return details;
}
public void setDetails(List<DummyDetail> details) {
    this.details = details;
}    
}

详细信息:

@XmlRootElement(name="detail")
public class DummyDetail {
private String name;

@XmlAttribute
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
}

最佳答案

更改您的 DummyMaster 类删除 @XmlElementWrapper 并添加 @XmlElement(name = "detail")

@XmlRootElement(name="master")
public class DummyMaster {

    private String name;
    private List<DummyDetail> details;

    @XmlAttribute
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    @XmlElement(name = "detail")
    public List<DummyDetail> getDetails() {
        return details;
    }

    public void setDetails(List<DummyDetail> details) {
        this.details = details;
    }
}

关于java - JAXB 简单 XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056598/

相关文章:

java - Spark 多次对数据库运行查询

Java:存储分组对象(可按其类别访问)的正确方法是什么?

java - 如何在 tabView 中使用撰写电子邮件 Activity ?

c# - "Value cannot be null"从一个或多个值为 null 的属性创建 XElement 时

java - 使用 Jaxb Unmarshall 获取 null 值

jaxb - 已弃用的 JAXBToStringBuilder 的替代方案

java - Java中LinkedList中间插入

xml - xsl 命名空间属性在子元素中添加空命名空间

java - 有没有一种方法可以根据单选按钮单击通过代码传递文本值?

java - @XmlAnyElement 不会解码为特定的 Java 类型,而是停在 JAXBElement 处