工作中常用的XML解析Java代码实现
2016-10-17 00:28
369 查看
以下XML为例 进行Java代码解析
<?xml version="1.0" encoding="UTF-8"?> <students> <student> <name>刘诗诗</name> <age>26</age> </student> <student> <name>杨幂</name> <age>28</age> </student> </students>
定义一个JavaBean进行解析
<pre name="code" class="html">package cn.an0327.pull;
public class Student { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + "]"; } }
代码实现
<pre name="code" class="html">import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; public class TestPull01 { /** * 1、创建解析器工厂 * 2、根据解析器工厂创建解析器 * 3、把要操作的文件放到解析器里面 */ public static void main(String[] args) throws Exception { //创建解析器工厂 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); //根据工厂创建解析器 XmlPullParser parser = factory.newPullParser(); //得到要操作文件的输入流 InputStream in = new FileInputStream("src/stu.xml"); //把要操作的文件放到解析器里面 parser.setInput(in, "utf-8"); //开始解析 int type = 0; List<Student> list = null; Student student = null; //如果当前解析到的标签,不是文档的结束,继续操作 while((type=parser.getEventType())!=XmlPullParser.END_DOCUMENT) { //得到当前解析的标签的名称 String tagName = parser.getName(); /* * 1、如果解析到students ,创建list集合 * 2、如果解析到student,创建student对象 * 3、如果解析到name和age,获取标签里面内容 * 4、把内容放到student对象里面 * */ switch(type) { case XmlPullParser.START_TAG: if("students".equals(tagName)) { //创建list集合 list = new ArrayList<Student>(); } else if("student".equals(tagName)) { student = new Student(); } else if("name".equals(tagName)) { //得到标签里面的值 String name = parser.nextText(); //把name值放到对象里面 student.setName(name); } else if("age".equals(tagName)) { String age = parser.nextText(); student.setAge(age); } break; case XmlPullParser.END_TAG: //当解析到结束的student时候,把对象放到list里面 if("student".equals(tagName)) { list.add(student); } break; } //向下执行 parser.next(); } //遍历list集合 for (Student stu : list) { System.out.println(stu.toString()); } } }
相关文章推荐
- JS解析XML的实现代码
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)
- JS解析XML的实现代码
- Android解析XML(PULL方式)和JSON 工作原理和实现过程(详细代码)
- java二维码生成与解析代码实现
- 利 用xml,解析yahoo天气代码(java)
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)D
- 收集Android里xml配置属性在java代码里的实现
- java二维码生成与解析代码实现 .
- Java代码与Xml实现界面的比较
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)B
- Animation Tween动画可以通过java代码实现,也可以通过xml布局来实现
- android 横屏竖屏设置的详解(最好不要用Java代码实现,用xml配置文件吧)
- JDOM是JAVA中最常用的一种解析XML的工具
- Java中用SAX解析XML完整实例代码
- Java根据word模板生成word文档之后台解析和实现及部分代码(二)
- Java根据word模板生成word文档之后台解析和实现及部分代码(三)A
- java二维码生成与解析代码实现
- java 解析Excel 与常用的xml解析方法
- java二维码生成与解析代码实现