使用Pull解析Xml文件
2015-06-15 17:40
429 查看
用的的jar包:
http://pan.baidu.com/s/1bnFEKgB
http://pan.baidu.com/s/1mgoXWNm
***PullParseXml类***
***test类***
***Book类***
***book.xml***
http://pan.baidu.com/s/1bnFEKgB
http://pan.baidu.com/s/1mgoXWNm
***PullParseXml类***
package pulltest; import java.io.IOException; import java.io.Reader; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; /** * @author yanru.zhang * */ public class PullParseXml { public List<Book> list; public Book book; public List<Book> getList(Reader reader) { try { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(reader); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT: list = new ArrayList<Book>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("book")) { book = new Book(); }else if(parser.getName().equals("id")){ eventType = parser.next(); book.setId(Integer.parseInt(parser.getText())); }else if(parser.getName().equals("name")){ eventType = parser.next(); book.setName(parser.getText()); }else if(parser.getName().equals("price")){ eventType = parser.next(); book.setPrice(Float.parseFloat(parser.getText())); } break; case XmlPullParser.TEXT: break; case XmlPullParser.END_TAG: if(parser.getName().equals("book")){ list.add(book); } break; } eventType = parser.next(); } } catch (XmlPullParserException e) { // TODO 自动生成的 catch 块 System.out.println("***XmlPullParserException"); e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 System.out.println("***IOException"); e.printStackTrace(); } return list; } }
***test类***
package pulltest; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.Reader; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; public class test { public static void main(String[] args) { // TODO 自动生成的方法存根 try { Reader reader = new FileReader(new File("xml/book.xml")); PullParseXml parseXml = new PullParseXml(); List<Book> list = parseXml.getList(reader); for(Book book:list){ System.out.println(book.toString()); } } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
***Book类***
package pulltest; public class Book { private int id; private String name; private float price; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } @Override public String toString() { return "id:" + id + ", name:" + name + ", price:" + price; } }
***book.xml***
<?xml version="1.0" encoding="utf-8"?> <books> <book> <id>1</id> <name>Thinking In Java</name> <price>80.00</price> </book> <book> <id>2</id> <name>Core Java</name> <price>90.00</price> </book> <book> <id>3</id> <name>Hello, Andriod</name> <price>100.00</price> </book> </books>
相关文章推荐
- 第十二章:线程控制
- datetime和time
- 自定义滑动开关(ToggleButton)
- 配置子目录Web.config使其消除继承
- 我又回来啦
- UIImage图片压缩和截取
- Java算法题
- iOS——UILabel 详解
- Android组建5:android中一些常见的类型转换ID/Drawable/Byte/Bitmap..
- Java for LeetCode 222 Count Complete Tree Nodes
- Android资源篇
- 回收站删除了怎么恢复
- iOS——iPhone屏幕尺寸、分辨率及适配
- PNG文件结构分析
- css字体中英文对照表(转)
- C#中一道关于线程同步的练习题——模拟多窗口售票
- 转义 输入法表情符号
- MSSQL2005_x64位标准版安装问题解决整理
- Mac OS X系统上使用MacDown
- Direct-X学习笔记--变换