一个序列化器,满足多个xml文件生成
来源:互联网 发布:手机cms 编辑:程序博客网 时间:2024/06/11 20:50
公司请求一律是xml的格式,就算一个id也好都是一个xml文件。所以参数不类型,不可能生成一个的xml文件,就要写一个序列化器。
NetworkHelper类中公用序列化器:
public static void toXML(final String filename, final List<KeyValue> data, final Handler handler){ new Thread() { public void run() { FileOutputStream fos = null;
//StringWriter writer=new StringWriter();
try { XmlSerializer serializer = Xml.newSerializer(); File f=new File(Path + filename); File file = new File(Path); if (!file.exists()) { file.mkdirs(); } fos = new FileOutputStream(f); serializer.setOutput(fos, "UTF-8");
//serializer.setOutput(writer);//不保存,获取字符串 serializer.startDocument("UTF-8", true); int frontlevel=-1;//前一级别 List<String> endTags=new ArrayList<String>();//结束尾保存 for(KeyValue kv:data){ try{while(frontlevel>=kv.getLevel()) { serializer.endTag(null,endTags.get(endTags.size()-1)); endTags.remove(endTags.size()-1); frontlevel=frontlevel-1;}frontlevel=kv.getLevel(); serializer.startTag(null, kv.getK()); if(!kv.getV().equals("")){ serializer.text(kv.v); } endTags.add(kv.getK()); }catch (Exception e) { e.printStackTrace(); } } //结束尾补全 if(endTags.size()>0){ for(int i=endTags.size()-1;i>=0;i--){ serializer.endTag(null,endTags.get(i)); } } serializer.endDocument(); handler.sendEmptyMessage(202);//生成了xml通知一下 } catch (Exception e) { e.printStackTrace(); }finally { try { fos.close(); } catch (Exception e) { e.printStackTrace(); } } } }.start();}
KeyValue类:
public class KeyValue { public String k;//字段 public String v;//值 public int level;//级别 public KeyValue() { } public KeyValue(int level, String k, String v) { this.k = k; this.v = v; this.level = level; }
}
调用:
List<KeyValue> dt=new ArrayList<KeyValue>();dt.add(new KeyValue(0,"一级",""));dt.add(new KeyValue(1,"二级",""));
dt.add(new KeyValue(2,"三级",""));dt.add(new KeyValue(3,"四级","字段值41"));NetworkHelper.toXML("file.xml",dt,handler);dt.add(new KeyValue(1,"二级","字段值22"));
0 0
- 一个序列化器,满足多个xml文件生成
- 生成一个XML文件:XML的序列化器
- 用序列化器生成xml文件
- Android-Xml序列化器生成短信xml文件
- 使用xml序列化器生成xml文件
- 使用xml序列化器生成xml文件保存数据
- 使XML序列化器生成XML文件
- Android之Xml序列化器生成xml文件
- 生成xml文件的步骤 -- XML的序列化器
- 序列化器生成XML文件保存信息
- pull方式解析xml文件以及用Serializer序列化器生成xml文件
- 生成一个xml文件
- Serializer序列化class,生成Xml文件详解
- C#递归生成XML文件,递归序列化对象
- 序列化xml文件
- 安卓中通过xml序列化器生成xml文档
- 一个字段同时满足多个条件的查询
- 一个字段同时满足多个条件的查询
- iOS分享中,先用代码截屏,再分享截图
- git客户端之间同步代码
- OLTP和OLAP的区别
- [Android]史上最强的图片选择器-GalleryFinal
- Jmeter 测试dubbo java接口
- 一个序列化器,满足多个xml文件生成
- 在Android程序中使用MQTT
- 在Linux中让echo命令显示带颜色的字
- Mysql你必须知道的命令和函数
- 关于数据库主键和外键(终于弄懂啦)
- 2017-04-24 DBA日记,触发BUG导致shared pool中的PRTMV memry剧增
- 获取手机电池状态,手机内存总容量大小,当前可用容量,手机IP地址,手机当前所连接Wi-Fi的名称
- ReactNative基于CodePush实现热更新集成详解
- 生产环境实战spark (8)分布式集群 Hadoop集群WEBUI打不开问题解决,关闭防火墙firewall