java - JAXB:如何获取包装类型的值(value)?

标签 java xml jaxb

@XmlRootElement(name = "toplist")
class toplist {

    private String description;

    private List<Item> items= new ArrayList<Item>();

    @XmlElement(name = "description")
    public String getDescription() {...}
    public String setDescription() {...}

    @XmlElement(name = "item")
    @XmlElementWrapper(name = "items")
    public List<ChartResultItem> getToplistEntries() {...}
}

class Item {
    private String attr1;
    private String attr2;
    private String attr3;

    // getter and setter with
    //     @XmlAttribute(name = "atter1"), @XmlAttribute(name = "atter2") and etc
}

和 xml

<?xml version="1.0" encoding="UTF-8"?>
<toplist>
    <description>This is description.</description>
    <items>
        <item attr1="" attr2="" attr3="">value1</item>
        <item attr1="" attr2="" attr3="">value2</item>
        <item attr1="" attr2="" attr3="">value3</item>
        ...
    </items>
</toplist>

如何在 Item 类中获取 value1、value2、value3 等(通过 jaxb)?

最佳答案

Jom 的回答是正确的 (+1)。下面举个例子进一步说明:

@XmlAccessorType(XmlAccessType.FIELD)
public class Item {
    @XmlValue
    protected String value;

    @XmlAttribute
    protected String attr1;

    @XmlAttribute
    protected String attr2;

    @XmlAttribute
    protected String attr3;
}

关于java - JAXB:如何获取包装类型的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815944/

相关文章:

xsd - 供应商特定命名空间不支持的绑定(bind)命名空间异常

java - JAXB @XmlValue 和 @XmlElements

xml - JAXB xjc - [错误] 意外 <xs :schema> appears at line 2 column 101

java - 比较对象的属性值,但不比较对象类型

java - 垃圾收集中的对象引用详细信息

java - Grails 中日期格式的错误输出

javascript - 日期格式被错误解释

javascript - 使voiceXML读取服务器返回的结果

javascript - 在 javascript 函数调用后打印'undefined'

java - 在网页上创建屏幕捕获功能的方法