我正在尝试处理以下xml:
<?xml version="1.0" encoding="UTF-8"?>
<operation name="GET_NOTES">
<result>
<status>Success</status>
<message>Notes details fetched successfully</message>
</result>
<Details>
<Notes>
<Note URI="http://something/24/notes/302/">
<parameter>
<name>ispublic</name>
<value>false</value>
</parameter>
<parameter>
<name>notesText</name>
<value>Note added to the request</value>
</parameter>
...
</Note>
...
</Notes>
<Details>
</operation>
这有很多无用的东西,所以我试图映射到类似的东西:
public class Notes {
public List<Note> notes;
}
public class Note {
public String notesText; //value of parameter with name notesText
public Boolean isPublic; //value of parameter with name ispublic
}
这是否可以使用JAXB,你会怎么做呢?
答案 0 :(得分:0)
JAXB只是忽略了bean中不存在的xmlelement。或者,使用@XmlTransient而不是@XmlElement对字段进行注释,也会跳过它。
在您的情况下,您需要编写三个类,即Notes,note和parameter。
@XmlRootElement(name="Notes")
public class Notes {
public List<Note> notes;
}
@XmlRootElement(name="Note")
public class Note {
public parameter param;
}
@XmlRootElement(name="parameter")
public class parameter {
public String name; //value of parameter with name notesText
public Boolean value; //value of parameter with name ispublic
}