我使用
@JsonAnySetter
注释将 XML 元素反序列化为 Map<String, String>
。这是一个例子:
public class MyElement {
private Map<String, String> attributes = new HashMap<>();
@JsonAnySetter
public void addAttribute(String name, String value) {
attributes.put(name, value);
}
public Map<String, String> getAttributes() {
return attributes;
}
}
在此示例中,addAttribute 方法用
@JsonAnySetter
进行注释,这告诉 JacksonXML 对于在 MyElement
类中没有相应属性的任何 XML 属性调用此方法。然后,该方法将属性名称和值添加到属性映射中。
要将 XML 元素反序列化为
MyElement
对象,您可以使用 XmlMapper
类:
String xml = "<to amount=\"345.00\" service=\"tabylga\" purpose_tsabylga=\"arenda\" account=\"381\"/>";
XmlMapper xmlMapper = new XmlMapper();
MyElement element = xmlMapper.readValue(xml, MyElement.class);
反序列化后,MyElement 对象中的属性映射将包含 XML 元素中的属性名称和值。