最近做的功能中,有一个是用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()方法,以及类似的方法,思路要开阔,它并不是只能在两个标记之间才能用,其他地方也可以进行输出,反正最后就是要组成一个文件而已。


更多相关文章

  1. 实现Android(安卓)获取cache缓存的目录路径的方法
  2. Android判断后台服务是否开启的两种方法实例详解
  3. Andorid Dialog万能去黑边去白底方法
  4. 方法数据库android轻量型数据库sqlite的使用方法汇总
  5. Frida对Android(安卓)app的JS脚本注入方法
  6. Android设置全屏隐藏状态栏的方法
  7. 使用adb出现假emulator的解决方法
  8. h5
  9. Android(安卓)LayoutInflater深度解析

随机推荐

  1. Android解决ViewPager嵌套ViewPager中多
  2. 一个真实问题,搞定三个冷门pandas函数
  3. 分析数万条旅游评论数据后,告诉你国庆“坑
  4. 让Python在后台自动解压各种压缩文件!
  5. 给女朋友写了一份前端学习路线。
  6. “你活该不去创业!”
  7. 小五碎碎谈
  8. 更高效的利用Jupyter+pandas进行数据分析
  9. 周末忙里偷闲去见了大学的俩老朋友。
  10. 如何在启动Jupyter Notebook时自动执行一