如何使用下面的代码解组XML字符串并将其映射到下面的JAXB对象?
JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Person person = (Person) unmarshaller.unmarshal("xml string here");
@XmlRootElement(name = "Person")
public class Person {
@XmlElement(name = "First-Name")
String firstName;
@XmlElement(name = "Last-Name")
String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
发布于 2011-03-28 20:18:46
要传递XML内容,您需要将内容包装在Reader
中,然后对其进行解组:
JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
StringReader reader = new StringReader("xml string here");
Person person = (Person) unmarshaller.unmarshal(reader);
发布于 2012-03-21 04:21:39
或者,如果你想要一个简单的一行代码:
Person person = JAXB.unmarshal(new StringReader("<?xml ..."), Person.class);
发布于 2011-03-28 20:19:32
没有unmarshal(String)
方法。您应该使用Reader
Person person = (Person) unmarshaller.unmarshal(new StringReader("xml string"));
但通常情况下,您会从某个地方获取该字符串,例如一个文件。如果是这样的话,最好传递FileReader
本身。
https://stackoverflow.com/questions/5458833
复制相似问题