我的解决办法需要限定用于主题和正文的一类,但所期望的输出将是所要求 我使用@XmlValue用于消息和@XmlAttribute为属性
@Test
public void testAll() throws JAXBException
{
String msg = "<notifications><date>04/20/2011</date><subject creditcard_num='22678' checknum='8904'>Credit Card Charge Back</subject><body payment_amount='34.00' return_status='charged back'>some text</body></notifications>";
Notifications tested = (Notifications) JAXBContext.newInstance(Notifications.class).createUnmarshaller().unmarshal(new StringReader(msg));
assertEquals("Credit Card Charge Back",tested.subject.value);
assertEquals("8904",tested.subject.checknum);
assertEquals("22678",tested.subject.creditcard_num);
}
@XmlRootElement
public static class Notifications{
public String date;
public Subject subject;
}
public static class Subject
{
@XmlValue
public String value;
@XmlAttribute(name="creditcard_num")
public String creditcard_num;
@XmlAttribute(name="checknum")
public String checknum;
}
备注:我只写了主题部分,不知是否使用@XmlPath可以用来删除不同类别的需要
你为什么不想为主体和主体定义类?你可以做到这一点,仍然有所需的输出相同 – ekeren 2011-05-06 19:07:09