XML解析
来源:互联网 发布:2017全球互联网数据 编辑:程序博客网 时间:2024/06/05 00:53
解析Xml
public class ParserUtils { public static List<Person> parserXml(InputStream open) { ArrayList<Person> list=null; Person person=null; try { XmlPullParser parser = Xml.newPullParser(); //设置解析者的参数,用open流中进行解析,以utf-8的格式进行解析 parser.setInput(open, "utf-8"); //获取事件标签的类型 int type = parser.getEventType(); //如果类型为文档的话, while(type!=XmlPullParser.END_DOCUMENT){ String name=parser.getName(); switch (type) { case XmlPullParser.START_TAG: if("persons".equals(name)){ list=new ArrayList<Person>(); }else if("person".equals(name)){ person=new Person(); }else if("name".equals(name)){ //nextText()就是取两个标签里面的值 person.setName(parser.nextText()); //如果字段里面有属性,可以通过getAttribute获取 person.setPic(parser.getAttributeValue(0)); }else if("age".equals(name)){ person.setAge(Integer.parseInt(parser.nextText())); }break; case XmlPullParser.END_TAG: if("person".equals(name)){ list.add(person); System.out.println(person); person=null; } break; } //让它一直往下走 type=parser.next(); } } catch (Exception e) { e.printStackTrace(); } return list; }}
创建Xml文件
//通过Xml获取一个XmlSerializer工具 XmlSerializer serializer = Xml.newSerializer(); //设置XmlSerializer序列化的参数,主要有输出流,要定义输出的地方,和文件字符格式,是否独立 try { File file=new File(Environment.getExternalStorageDirectory(),"persons.xml"); FileOutputStream os=new FileOutputStream(file); //设置序列化器的参数,这里面的是流的编码 serializer.setOutput(os, "utf_8"); //开始xml文档的开头,这里的编码是生成xml文件编码 serializer.startDocument("utf_8", true); //写xml的根节点,namespace 命名空间,没有就写null serializer.startTag(null, "persons"); //循环写person节点 for (Person p : list) { serializer.startTag(null, "person"); //开始写属性节点,name,age serializer.startTag(null, "name"); //内容 serializer.text(p.getName()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); //内容 serializer.text(p.getAge()); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); //根节点结尾 //在写开头的时候就写结尾,不容易忘,也不容易乱 serializer.endDocument(); } catch (Exception e) { e.printStackTrace(); }
0 0
- XML解析
- xml解析
- XML解析
- 解析XML
- xml解析
- 解析xml
- 解析xml
- xml解析
- XML解析
- xml解析
- XML解析
- xml解析
- xml解析
- xml解析
- xml解析
- xml解析
- 解析xml
- XML解析
- hdu 5682 zxa and leaf (二分+搜索)
- Hadoop入门
- Greenplum中查询数据
- 重叠(overlapped)模型
- 单例模式
- XML解析
- 《C++ Concurrency in Action》读书笔记二 线程之间共享资源
- python正则表达式(个人笔记)
- MPO与MTP光纤连接标准的区别
- 2016"百度之星" - 资格赛(Astar Round1) 1004()
- 1.4.1 Android的编码规范
- 各种排序算法的分析与实现 java
- redis的 rdb 和 aof 持久化的区别
- Vim高亮显示ARM汇编指令