首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JAXB从XML字符串创建对象

使用JAXB从XML字符串创建对象
EN

Stack Overflow用户
提问于 2011-03-28 20:15:34
回答 5查看 261.6K关注 0票数 183

如何使用下面的代码解组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;
    }
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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);
票数 309
EN

Stack Overflow用户

发布于 2012-03-21 04:21:39

或者,如果你想要一个简单的一行代码:

Person person = JAXB.unmarshal(new StringReader("<?xml ..."), Person.class);
票数 170
EN

Stack Overflow用户

发布于 2011-03-28 20:19:32

没有unmarshal(String)方法。您应该使用Reader

Person person = (Person) unmarshaller.unmarshal(new StringReader("xml string"));

但通常情况下,您会从某个地方获取该字符串,例如一个文件。如果是这样的话,最好传递FileReader本身。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5458833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档