从String </book>创建JAXBElement <book>

时间:2012-12-04 18:34:56

标签: java xml jaxb jax-rs

我定义了一个Book Book,我想创建一个JAXBElement对象,该对象将包含与String对象中的XML相对应的信息。

例如,我可以有类似的东西:

String code = "<book><title>Harry Potter</title></book>";

现在,我想从该字符串开始创建一个JAXBElement。我需要字符串来做一些我使用JAXBElement无法做的验证。

那么,我能做我想做的事吗?如果是,怎么样?

谢谢!

索林

1 个答案:

答案 0 :(得分:4)

如果您使用带有unmarshal参数的Class方法之一,您将收到JAXBElement的实例。

<强>演示

package forum13709611;

import java.io.StringReader;
import javax.xml.bind.*;
import javax.xml.transform.stream.StreamSource;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(Book.class);

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        String code = "<book><title>Harry Potter</title></book>";
        StreamSource source = new StreamSource(new StringReader(code));
        JAXBElement<Book> jaxbElement = unmarshaller.unmarshal(source, Book.class);
    }

}

图书

package forum13709611;

public class Book {

    private String title;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

}