CompactWriter() を使用して xml の prettyprint (すべての改行/改行) を削除できますが、プロローグとスタイルシートを保持するにはどうすればよいですか?
現在、私は Writer クラスを使用して、書き込みメソッドを使用してプロローグとスタイルシートを追加しています。
以下は、オブジェクトをシリアル化する私の関数です。
private void serializeData(DiagData diagData){
fileinfo=new HashMap<String,String>();
XStream xstream = new XStream();
xstream.processAnnotations(DiagData.class);
FileOutputStream fileOutputStream=null;
Writer writer=null;
//CompactWriter writer=null;
xstream.registerConverter(new MapConverter());
try {
String path = Constants.XML_PATH+File.separator+Constants.DIRECTORY_NAME;
File diagnosticDir = new File(path);
String serialNumber=null;
IDataCollector dataCollector=new DataCollector();
serialNumber=dataCollector.getSerialNumber();
String fileName = new SimpleDateFormat("yyyyMMddhhmmss'.xml'").format(new Date());
if(serialNumber!=null)fileName=serialNumber+Constants.UNDERSCORE+fileName;
fileName=Constants.PHONEHOME+Constants.UNDERSCORE+fileName;
fileOutputStream = new FileOutputStream(path+File.separator+fileName);
writer = new OutputStreamWriter(fileOutputStream);
//writer = new CompactWriter(new OutputStreamWriter(fileOutputStream));
writer.write(Constants.PROLOG);
writer.write(Constants.STYLESHEET);
xstream.toXML(diagData, writer);
//xstream.marshal(diagData, writer);
} catch (FileNotFoundException e1) {
} catch (Exception e) {
} finally {
try {
fileOutputStream.close();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
}