android 使用XStream解析xml的实例
时间:2021-07-11 08:43:46|栏目:Android代码|点击: 次
1,要解析的xml文件文件
xml="<apps>\n" + " <app>\n" + " <id>1</id>\n" + " <name>burn</name>\n" + " <version>1.0</version>\n" + " <info>\n" + " <size>10.5</size>\n" + " <message>hhhhhhhh</message>\n" + " </info>\n" + " <info>\n" + " <size>10.5</size>\n" + " <message>hhhhhhhh</message>\n" + " </info>\n" + " </app>\n" + " <app>\n" + " <id>2</id>\n" + " <name>burn2</name>\n" + " <version>2.1</version>\n" + " <info>\n" + " <size>10.5</size>\n" + " <message>hhhhhhhh</message>\n" + " </info>\n" + " <info>\n" + " <size>10.5</size>\n" + " <message>hhhhhhhh</message>\n" + " </info>\n" + " </app>\n" + " <app>\n" + " <id>3</id>\n" + " <name>burn3</name>\n" + " <version>3.2</version>\n" + " <info>\n" + " <size>10.5</size>\n" + " <message>hhhhhhhh</message>\n" + " </info>\n" + " <info>\n" + " <size>10.5</size>\n" + " <message>hhhhhhhh</message>\n" + " </info>\n" + " </app>\n" + "</apps>";
2,新建xml文件对应的封装类
/** * xml数据对应的封装类(注意实体类和xml数据的对应关系,所有标签都得对应) */ @XStreamAlias("apps")//配置标签别名 public class AppBean { @XStreamImplicit//忽略集合根节点 private List<App> app_list; //必须有无参构造方法 public AppBean() { } public AppBean(List<App> app_list) { this.app_list = app_list; } public List<App> getApp_list() { return app_list; } public void setApp_list(List<App> app_list) { this.app_list = app_list; } @XStreamAlias("app") public static class App{ private long id; private String name; private String version; @XStreamImplicit private List<Infor> infor_list; public App() { } public App(long id, List<Infor> infor_list, String name, String version) { this.id = id; this.infor_list = infor_list; this.name = name; this.version = version; } public long getId() { return id; } public void setId(long id) { this.id = id; } public List<Infor> getInfor_list() { return infor_list; } public void setInfor_list(List<Infor> infor_list) { this.infor_list = infor_list; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } @XStreamAlias("info") public static class Infor{ private String message; private double size; public Infor() { } public Infor(String message, double size) { this.message = message; this.size = size; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public double getSize() { return size; } public void setSize(double size) { this.size = size; } } } }
3,开始xml解析
XStream xStream=new XStream(); xStream.processAnnotations(AppBean.class);//声明使用注解的类 AppBean ab2= (AppBean) xStream.fromXML(xml);//xml-->Bean,只能解析为对象,不能解析为集合 String xml=xStream.toXML(AppBean.class)//Bean-->xml