zoukankan      html  css  js  c++  java
  • 每日日报

    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);
    
    }
    
    }
    
    }
  • 相关阅读:
    webview 缓存
    winform 托盘
    winform自动保存属性变更
    序列化条件
    System.Web.HttpUtility VS System.Net.WebUtility
    javascript模拟sleep
    C#实现把科学计数法(E)转化为正常数字值 (转)
    appium远程连手机调控
    adb通过wifi连接android设备
    在项目中接口测试时怎么做的?
  • 原文地址:https://www.cnblogs.com/zhukaile/p/14833170.html
Copyright © 2011-2022 走看看