Tob*_*ias 7 java xml pretty-print jaxb
我想在使用JAXB解组时格式化XML文档.Unmarshal看起来像:
Unmarshaller u = createAndsetUpUnmarshaller(enableValidation, evtHandler, clazz);
return u.unmarshal(new ByteArrayInputStream(stringSource.getBytes()));
Run Code Online (Sandbox Code Playgroud)
编组可以通过以下方式格式化代码:
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
Run Code Online (Sandbox Code Playgroud)
但是对于unmarchal进程来说这是不可能的......任何想法如何在解组过程中(或之后)使用JAXB格式化XML字符串?
顺便说一下:我在这里看了一些关于漂亮打印的帖子,但我想用JAXB做到这一点!
Jus*_*owe 21
如果要记录与您刚刚解组的XML相对应的格式化XML,您可以使用您指定的属性,即将解组的对象重新编组回XML.
/**
* Marshall input object to a formatted XML String
*/
protected <T> String marshal(T input) throws JAXBException {
StringWriter writer = new StringWriter();
JAXBContext jc = JAXBContext.newInstance(input.getClass());
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(input, writer);
return writer.toString();
}
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您只想重新格式化XML,那么您可能应该使用JAXP而不是JAXB.
| 归档时间: |
|
| 查看次数: |
31933 次 |
| 最近记录: |