Android(安卓)XmlSerializer 换行
16lz
2021-01-26
最近做的功能中,有一个是用Android 的XmlSerializer 生成XML文件然后发送出去。不过发现生成的XML内容全部连在了一起,没有换行,难以阅读:
那么来看看XmlSerializer的代码是怎么写的:
serializer.startTag("", "APP_TYPE");serializer.text("1");serializer.endTag("", "APP_TYPE");serializer.startTag("", "STATION_ID");serializer.text("0");serializer.endTag("", "STATION_ID");以上代码是没有问题的,也就是说,默认是没有换行和回车的,那怎样用XmlSerializer 进行换行呢?
在XmlSerializer中并没有找到直接输出换行符的方法。
当然,我原来的想法,觉得 text()方法只能在两个标记之间用,但换行符是在标记外边的,怎么办呢?原来是我钻牛角尖了,其实text() 方法也能在标记外边使用,并没有位置的约束。那怎样输出换行符呢?程序跑在Android系统中,但开发又在Windows中进行,为了不混淆,就调用系统服务来找到换行符的正确写法:
String enter = System.getProperty("line.separator");//换行于是,将代码改写为:
String enter = System.getProperty("line.separator");//换行serializer.startTag("", "APP_TYPE");serializer.text("1");serializer.endTag("", "APP_TYPE"); changeLine(serializer, enter);serializer.startTag("", "STATION_ID");serializer.text("0");serializer.endTag("", "STATION_ID"); changeLine(serializer, enter);
changeLine()方法:
public static void changeLine(XmlSerializer serializer, String enter){try{serializer.text(enter);}catch(IOException e){System.out.println(e.getMessage());}}
换行成功:
问题解决!
总结:关于XmlSerializer 的text()方法,以及类似的方法,思路要开阔,它并不是只能在两个标记之间才能用,其他地方也可以进行输出,反正最后就是要组成一个文件而已。
更多相关文章
- 实现Android(安卓)获取cache缓存的目录路径的方法
- Android判断后台服务是否开启的两种方法实例详解
- Andorid Dialog万能去黑边去白底方法
- 方法数据库android轻量型数据库sqlite的使用方法汇总
- Frida对Android(安卓)app的JS脚本注入方法
- Android设置全屏隐藏状态栏的方法
- 使用adb出现假emulator的解决方法
- h5
- Android(安卓)LayoutInflater深度解析