• 每日日报


    pull 解析  ☆

    调用next方法 解析下一个元素 每调用一次 解析一个元素
    public class PullParserTest {
    
    @Test
    
    public void pullTest() throws Exception {
    
    ArrayList<Book> books = null;
    
    Book book = null;
    
    // 获取工厂
    
    XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance();
    
    // 获取到xml的解析器
    
    XmlPullParser parser = parserFactory.newPullParser();
    
    // 给解析器设置一个输入源
    
    // 第一个参数输入流 第二个参数 文档用到的字符编码集
    
    parser.setInput(new FileInputStream(new File("book.xml")), "utf-8");
    
    // 获取当前事件类型
    
    int eventType = parser.getEventType();
    
    boolean flag = true;
    
    while (eventType != XmlPullParser.END_DOCUMENT && flag) {
    
    switch (eventType) {
    
    case XmlPullParser.START_TAG:
    
    //开始标签
    
    //parser.getName 获取当前事件对应的元素名字
    
    if("书架".equals(parser.getName())){
    
    //创建一个集合
    
    books = new ArrayList<>();
    
    }else if("书".equals(parser.getName())){
    
    //创建一个book 对象
    
    book = new Book();
    
    }else if("书名".equals(parser.getName())){
    
    //给book 对象设置书名的属性
    
    book.setTitle(parser.nextText()); //parser.nextText()获取当前节点的下一个文本内容
    
    }else if("作者".equals(parser.getName())){
    
    //给book 对象设置作者的属性
    
    book.setAuthor(parser.nextText());
    
    }else if("售价".equals(parser.getName())){
    
    //给book 对象设置售价的属性
    
    book.setPrice(parser.nextText());
    
    }
    
    break;
    
    case XmlPullParser.END_TAG:
    
    //结束标签
    
    if("书".equals(parser.getName())){
    
    //把book 对象添加到集合中
    
    books.add(book);
    
    flag = false;
    
    }
    
    break;
    
    }
    
    // 调用parser.next方法解析下一个元素 用这个结果来更新eventType 如果解析到文档结束那么就会推出循环
    
    // 如果不更新这个eventType 就是死循环
    
    eventType = parser.next();
    
    }
    
    //遍历集合
    
    for(Book book1:books){
    
    System.out.println(book1);
    
    }
    
    }
    
    }
  • 相关阅读:
    android 的权限
    做android遇到有问题有感
    帮人写的 论文 C语言的 学生管理系统
    android 服务器的 mysql 查询悲剧
    android开发遇到的问题
    想和各位技术高人材交流技术特建了相关的QQ群
    Invalid token '44' in input string
    设置PLSQL Developer访问本机64位Oracle
    SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作……错误:3219……”的解决方法
    C#的JSON开发包 LitJSON
  • 原文地址:https://www.cnblogs.com/zhukaile/p/14833170.html
Copyright © 2020-2023  润新知