pull方式解析xml文件以及用Serializer序列化器生成xml文件
来源:互联网 发布:windows返回快捷键 编辑:程序博客网 时间:2024/05/17 05:18
xml解析之pull解析
- pull解析xml文件的步骤:
1.拿到XmlPullParserFactory工厂对象
2.通过工厂对象拿到解析器(newPullParser())
3.指定要被解析的xml文件的路径及解码格式
4.获得事件的类型(getEventType())
5.循环解析(当没有到文档结尾就一直的解析)
示例代码如下:
@Test public void xmlPull() throws Exception { // 1,拿到XmlPullParserFactory工厂对象 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // 2,通过工厂对象拿到解析器(newPullParser()) XmlPullParser parser = factory.newPullParser(); // 3指定要被解析的xml文件的路径及解码格式 InputStream is = new FileInputStream("src/student.xml"); parser.setInput(is, "UTF-8"); // 4,获得事件的类型(getEventType()) int type = parser.getEventType(); List<Student> list = new ArrayList<Student>(); Student stu = null; // 当不是文档的结束标签就一直循环的遍历 while (type != XmlPullParser.END_DOCUMENT) { if (type == XmlPullParser.START_TAG) { if ("name".equals(parser.getName())) { stu = new Student(); String name = parser.nextText(); stu.setName(name); } else if ("age".equals(parser.getName())) { String age = parser.nextText(); stu.setAge(age); } else if ("city".equals(parser.getName())) { String city = parser.nextText(); stu.setCity(city); } }else if(type==XmlPullParser.END_TAG){ if("student".equals(parser.getName())){ list.add(stu); } } // 手动的得到下一个标签,并且一定要赋值给type,不然会死循环 type = parser.next(); } for (Student student : list) { System.out.println(student.toString()); } }
被解析的xml文件
- 文件如下
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><students> <student> <name>mcc</name> <age>18</age> <city>上海</city> </student> <student> <name>lw</name> <age>19</age> <city>深圳</city> </student></students>
通过Serializer序列化器生成xml文件
- 生成步骤如下:
/** * 生成xml文件 * 生成步骤: * 1,通过XmlPullParserFactory获得工厂对象 * 2,通过上面得到的工厂对象拿到序列化对象Serializer的对象 * 3,通过setOutput()把创建的xml文件写入到指定的目的地 * 4,通过序列化对象,生成指定的标签 * * @throws Exception */ @Test public void serializerTest() throws Exception { // 创建serializer工厂对象 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // 通过工厂对象得到Serializer对象 XmlSerializer serializer = factory.newSerializer(); // 3,指定一个输出流setOutput(); OutputStream os = new FileOutputStream("src/student.xml"); // serializer.setOutput(os, "UTF-8"); // 生成xml文件头 serializer.startDocument("UTF-8", true); serializer.startTag(null, "students"); serializer.startTag(null, "student"); serializer.startTag(null, "name"); serializer.text("mcc"); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text("18"); serializer.endTag(null, "age"); serializer.startTag(null, "city"); serializer.text("上海"); serializer.endTag(null, "city"); serializer.endTag(null, "student"); serializer.startTag(null, "student"); serializer.startTag(null, "name"); serializer.text("lw"); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text("19"); serializer.endTag(null, "age"); serializer.startTag(null, "city"); serializer.text("深圳"); serializer.endTag(null, "city"); serializer.endTag(null, "student"); serializer.endTag(null, "students"); serializer.endDocument(); }
这样xml的pull解析和通过Serializer序列化器生成xml文件的两个小demo就完成了
0 0
- pull方式解析xml文件以及用Serializer序列化器生成xml文件
- XML序列化以及用pull解析器解析XML文件
- 用pull解析器 生成xml文件
- Serializer序列化class,生成Xml文件详解
- pull解析器解析 生成 xml文件
- Pull解析器解析XML文件和生成XML文件
- pull 方式解析xml文件
- Pull方式解析XML文件
- PULL方式解析XML文件
- 使用Pull解析器生成XML文件
- 通过Pull解析器生成xml文件
- Java-使用SAX,DOM,pull解析XML文件以及pull解析生成xml文件
- 序列化生成XML文件以及Pull解析
- 用pull解析xml和pullParse生成xml文件详解
- 用PULL解析器解析XML文件
- 用PULL解析器解析XML文件
- 利用PULL解析方式解析XML文件
- Pull生成XML文件
- Fair Division
- POJ 青蛙的约会 1061【经典数论-扩展欧几里得】
- hdoj 2222 Keywords Search 【AC自动机 入门题】 【求目标串中出现了几个模式串】
- 数论基础的补充讲解
- Servlet学习总结
- pull方式解析xml文件以及用Serializer序列化器生成xml文件
- 计算机进制理解
- samba服务器配置文件示例
- FiniteTimeAction,Follow,Speed源码分析
- VC写加密壳
- B2B移动商务社交平台贸人E家APP在深首发
- poj2388Who's in the Middle【堆排序】
- 第三方微博登陆,通过OAuth 2.0 进行授权
- 24. 排序