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

标签 java xml jaxb

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

最佳答案

要传递 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);

关于java - 使用 JAXB 从 XML 字符串创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458833/

相关文章:

java - 抽屉导航以编程方式更改 fragment

java - 如何在 Java 中删除目录内容?

java - 是否可以使用多个 "root"元素将多个 Java 类对象序列化到单个 XML 文件中?

c# - C# 中的 SAML 断言 WriteXML 问题

java - List<JAXBElement< 是什么?扩展 SomeClassName>> 是什么意思?

xpath - 我正在使用 docx4j 来读取 .docx 文件,我需要获取文档的段落并替换字符串

java - 扫描仪元件异常

java - GAE JSF 表单标签错误?

java - 我不希望我的应用在打开 URL 时出现在选择器对话框中

java - 使用 XSD 中的元素 "anyAttribute"和 "any"将 XML 编码为 Java