XML转java bean,获取标签内 属性值(方法1)


需求:

<PROPERTYLIST>
<PROPERTY PROPERTYCODE="test1">value1</PROPERTY>
<PROPERTY PROPERTYCODE="test2">value2</PROPERTY>
<PROPERTY PROPERTYCODE="test3">value3</PROPERTY>
</PROPERTYLIST>

根据PROPERTYCODE 的值,获取value,赋值给java对象。

根据标签,对应,可以直接使用@XmlElement(name = "PROPERTY"),但是根据属性值,还真不知道怎么用,后来在网上找到了一个帖子,

https://my.oschina.net/zy223344/blog/727603

说明的很详细,需要使用  @XmlAnyAttribute 属性转化

@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name="PROPERTYLIST")
public class ValueList {
    
    private List<Property> PropertyList = new ArrayList<Property>();

    public List<Property> getPropertyList() {
        return PropertyList;
    }
    @XmlElement(name="Property")
    public void setPropertyList(List<Property> propertyList) {
        this.propertyList = propertyList;
    }
    
    
}
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "Property")
public class Property {
    
    @XmlAnyAttribute()
    private Map map;//每个Item的属性值
    @XmlValue
    private String text;
    
    public Map getMap() {
        return map;
    }
    public void setMap(Map map) {
        this.map = map;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }

}

text 的值就是对应的value

使用map.get(QName.valueOf("PROPERTYCODE")) 获取test1.

若不适用QName,确实获取到的为null。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM