从File
:
JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
Unmarshaller u = jc.createUnmarshaller();
Object o = u.unmarshal( new File( "nosferatu.xml" ) );
从InputStream
:
InputStream is = new FileInputStream( "nosferatu.xml" );
JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
Unmarshaller u = jc.createUnmarshaller();
Object o = u.unmarshal( is );
答案 0 :(得分:0)
JAXB (JSR-222) API已经非常通用了。
<强>的JAXBContext 强>
此对象是线程安全的,因此您只需创建一次,然后从中创建Marshaller
,Unmarshaller
等所有实例。
<强>的Marshaller / Unmarshaller的强>
这些对象不是线程安全的,因此您需要确保它们不会被多个线程同时使用。除非您正在设置任何属性,否则您可以随时执行:
JAXBContext jc = JAXBContext.newInstance("com.acme.foo");
Object o = jc.createUnmarshaller().unmarshal(new File("nosferatu.xml"));