我得到一个长字符串作为属性,我想解组它的一部分。
这是元素的样子:
<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45">
但我想将1341592540748
设为id
是否可以动态编辑@XmlAttribute字符串?
答案 0 :(得分:1)
一种方法可能是在setter方法中进行转换,类似这样(未经测试):
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Party {
@XmlTransient long id;
// traditional JavaBean accessors for the long, _not_ used by JAXB
public long getId() { return id; }
public void setId(long id) { this.id = id; }
// converting accessors for JAXB
@XmlAttribute(name = "id")
public String getStringId() { return String.valueOf(id); }
public void setStringId(String idStr) {
// extract relevant bit of the string and parse it into a long
}
}
答案 1 :(得分:1)
我建议实现XmlAdapter
的实例以包含此逻辑。这种方法的优点是XML转换逻辑与您的域模型保持独立。使用XmlAdapter
注释在字段/属性上设置@XmlJavaTypeAdapter
。
了解更多信息