我得到一个长字符串作为属性,我想解组它的一部分。
这是元素的样子:
<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45">
但我只想1341592540748
被设置为 id。
是否可以即时编辑@XmlAttribute 字符串?
我得到一个长字符串作为属性,我想解组它的一部分。
这是元素的样子:
<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45">
但我只想1341592540748
被设置为 id。
是否可以即时编辑@XmlAttribute 字符串?
我建议实现一个实例XmlAdapter
来包含这个逻辑。这种方法的优点是 XML 转换逻辑与您的域模型分开。使用注释XmlAdapter
在字段/属性上设置An 。@XmlJavaTypeAdapter
了解更多信息
一种方法可能是在 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
}
}