Android(安卓)使用XmlPullParser解析xml
16lz
2021-01-25
这里我们假设要解析的xml文件名为:test.xml,我们将其放在assets路径中。
xml文件内容为:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?><books> <book id="1"> <name>Java编程思想</name> <price>29.9</price> <date>2013年11月11日</date> </book> <book id="2"> <name>PHP和MySQL WEB开发</name> <price>49.9</price> <date>2009年10月01日</date> </book> <book id="3"> <name>鸟哥的Linux私房菜</name> <price>60.0</price> <date>2010年05月30日</date> </book></books>
下面的代码演示了如何去解析一个xml文件(注意assets文件流的获取方式)
private void pullXml() { InputStream inputStream = null; List<Book> bookList = null; Book book = null; try { //初始化parser AssetManager assetManager=this.getAssets(); inputStream = assetManager.open("test.xml"); XmlPullParser parser = Xml.newPullParser(); parser.setInput(inputStream, "utf-8"); //开始读取数据 int type = parser.getEventType(); while (type != XmlPullParser.END_DOCUMENT) {//1 switch (type) { case (XmlPullParser.START_TAG)://0 if ("books".equals(parser.getName())) { bookList = new ArrayList<Book>(); } else if ("book".equals(parser.getName())) { book = new Book(); //获取book的id String id = parser.getAttributeValue(0); book.setId(Integer.parseInt(id)); } else if ("name".equals(parser.getName())) { book.setName(parser.nextText()); } else if ("price".equals(parser.getName())) { book.setPrice(Double.parseDouble(parser.nextText())); } else if ("date".equals(parser.getName())) { book.setDate(parser.nextText()); } break; case (XmlPullParser.END_TAG)://3 if ("book".equals(parser.getName())) { bookList.add(book); book = null; } break; } type = parser.next(); } } catch (Exception e) { Toast.makeText(this, "解析出错", Toast.LENGTH_LONG).show(); e.printStackTrace(); } Toast.makeText(this, "长度"+bookList.size(), Toast.LENGTH_LONG).show(); for (Book book1 : bookList) { Log.d("book", book1.toString()); } }
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- font 在xml使用
- QT on Android(安卓)开机动画和开机图片显示
- android JNI 开发之—导入so库、jar包并调用
- android中expandablelistview的学习
- Android使用Google Map API创建的一个根据经纬度定位的程序二