我正在尝试解析一个简单的XML文件,如下所示:
<customer id="100">
<age value=" 29"/>
<name value="Bob"/>
</customer>我以这种方式使用JAX库:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
@XmlAttribute(name = "id")
String id;
@XmlAttribute(name = "value")
String value;
String name;
String age;
public String getName() {
return name;
}
@XmlElement(name = "value")
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
@XmlElement(name = "value")
public void setAge(String age) {
this.age = age;
}
public String getId() {
return id;
}
@XmlElement(name = "id")
public void setId(String id) {
this.id = id;
}
}有一个IllegalAnnotationExceptions。我被这个链接过期了:here,但没有成功。
发布于 2019-05-28 19:47:49
由于"name“和"age”值实际上是子节点的属性,您应该将其提取到单独的类中,如下所示:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public static class Customer {
@XmlAttribute
String id;
@XmlElement
NameAgeValue name;
@XmlElement
NameAgeValue age;
public String getId() {
return id;
}
public String getAge() {
return (age == null) ? null : age.value;
}
public String getName() {
return (name == null) ? null : name.value;
}
}
@XmlType
public static class NameAgeValue {
@XmlAttribute
String value;
}https://stackoverflow.com/questions/56341292
复制相似问题