首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用Javax.xml库解析XML

如何利用Javax.xml库解析XML
EN

Stack Overflow用户
提问于 2019-05-28 19:33:10
回答 1查看 39关注 0票数 1

我正在尝试解析一个简单的XML文件,如下所示:

代码语言:javascript
复制
<customer id="100">
    <age value=" 29"/>
    <name value="Bob"/>
</customer>

我以这种方式使用JAX库:

代码语言:javascript
复制
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {

    @XmlAttribute(name = "id")
    String id;
    @XmlAttribute(name = "value")
    String value;
    String name;
    String age;

    public String getName() {
        return name;
    }

    @XmlElement(name = "value")
    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    @XmlElement(name = "value")
    public void setAge(String age) {
        this.age = age;
    }

    public String getId() {
        return id;
    }

    @XmlElement(name = "id")
    public void setId(String id) {
        this.id = id;
    }
}

有一个IllegalAnnotationExceptions。我被这个链接过期了:here,但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-28 19:47:49

由于"name“和"age”值实际上是子节点的属性,您应该将其提取到单独的类中,如下所示:

代码语言:javascript
复制
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public static class Customer {

    @XmlAttribute
    String id;

    @XmlElement
    NameAgeValue name;

    @XmlElement
    NameAgeValue age;

    public String getId() {
        return id;
    }

    public String getAge() {
        return (age == null) ? null : age.value;
    }

    public String getName() {
        return (name == null) ? null : name.value;
    }
}

@XmlType
public static class NameAgeValue {

    @XmlAttribute
    String value;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56341292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档