我想将输入字符串(只是xml)转换为JAVA对象。我正在使用JAXB。但我的问题来自调用应用程序我将以字符串的形式接收XML。但是jaxbUnmarshaller.unmarshal(inputXML);
期望输入中有一个FILE对象。因此,有一些方法可以将输入字符串转换为FILE对象,而无需手动将此传入内容写入磁盘。
以下是我的方法片段
public void xmlToObject(String inputXML){
try{
JAXBContext jaxbContext = JAXBContext.newInstance(LineItemsBeanList.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
LineItemsBeanList objreq= (LineItemsBeanList) jaxbUnmarshaller.unmarshal(inputXML);
printLineItems(objreq.getLineItemsBean());
nba.processLineItems(objreq.getLineItemsBean());
nba.printFinalSetOfRules();
}
catch(Exception e){
System.out.println(e);
}
}
答案 0 :(得分:0)
您无需创建File对象来解决此问题。
使用javax.xml.transform.stream.StreamSource从StringBuffer解组:
JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
Unmarshaller u = jc.createUnmarshaller();
StringBuffer xmlStr = new StringBuffer( "<?xml version="1.0"?>..." );
Object o = u.unmarshal( new StreamSource( new StringReader( xmlStr.toString() ) ) );
在您的情况下,您可以使用类似的方法从字符串中解组:
LineItemsBeanList objreq = (LineItemsBeanList) jaxbUnmarshaller.unmarshal(
new StreamSource(new StringReader(inputXML)));