我定义了一个Book Book,我想创建一个JAXBElement对象,该对象将包含与String对象中的XML相对应的信息。
例如,我可以有类似的东西:
String code = "<book><title>Harry Potter</title></book>";
现在,我想从该字符串开始创建一个JAXBElement。我需要字符串来做一些我使用JAXBElement无法做的验证。
那么,我能做我想做的事吗?如果是,怎么样?
谢谢!
索林
答案 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;
}
}