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