我有像以下JAXB解组单本原元素
<tag1>
<intag1>
<item>
<aaa>sdfdfsf</aaa>
<bbb>fvdfv</bbb>
</item>
</intag1>
<intag2>3</intag2>
</tag1>
我使用弹簧料与JAXB读取xml并映射到对象的XML文件。我有一个对象模型intag1
,它没有任何问题映射,但我想直接将intag2
映射到int
对象。以下是我一直在测试的示例代码,但这给我以下例外。任何人都可以指出这个问题吗?
Jaxb2Marshaller jaxb2unmarshaller = new Jaxb2Marshaller();
jaxb2unmarshaller.setClassesToBeBound(int.class);
jaxb2unmarshaller.afterPropertiesSet();
StaxEventItemReader reader = new StaxEventItemReader();
reader.setResource(new InputStreamResource(new FileInputStream("test6.xml")));
reader.setUnmarshaller(jaxb2unmarshaller);
reader.setFragmentRootElementName("intag2");
reader.afterPropertiesSet();
reader.open(new ExecutionContext());
例外:
[com.sun.istack.internal.SAXParseException2; lineNumber: 105; columnNumber: 25; unexpected element (uri:"", local:"intag2"). Expected elements are (none)]
我已经有了映射'intag1'和'intag1'的模型类可以重复1000次以上,这就是为什么我使用流式传输。我不想将根级'tag1'元素映射到java对象,因为它需要更多的内存。 – Sudheera
@Sudheera我更新了我的答案以符合您的需求 – Thrax
您好@Thrax谢谢,我刚刚发布了另一个答案,只是快速浏览一下。 – Sudheera