zoukankan      html  css  js  c++  java
  • InputStream流解析 XML文件

     1     //  根据InputStream流解析  XML文件
     2     private void getNewsFromStream(InputStream is){
     3         // 1.创建XML pull 解析器 谷歌内置解析器
     4         XmlPullParser xp = Xml.newPullParser();
     5         try {
     6             //2.指定解析器要解析的文件 和解析文件所用到的编码方式
     7             xp.setInput(is,"utf-8");
     8             //3.开始解析文件(在解析之前需要有 JavaBean,先创建JavaBean)
     9             
    10             // 获取事件类型,通过事件类型 去判断当前解析的是什么节点
    11             int type = xp.getEventType();
    12             ArrayList<News> newsList=null;
    13             News news=null;
    14             while(type!=XmlPullParser.END_DOCUMENT){
    15                 // 通过解析不同的节点进行不同的操作
    16                 switch (type) {
    17                 case XmlPullParser.START_TAG:
    18                     // pull解析器的getName 是获取当前节点的名字。
    19                     if("newslist".equals(xp.getName())){
    20                         newsList = new ArrayList<News>();
    21                     }
    22                     else if("news".equals(xp.getName())){
    23                         news = new News();
    24                     }
    25                     else if("title".equals(xp.getName())){
    26                         try {
    27                             String title = xp.nextText();
    28                             news.setTitle(title);
    29                         } catch (IOException e) {
    30                             // TODO Auto-generated catch block
    31                             e.printStackTrace();
    32                         }
    33                     }
    34                     else if("comment".equals(xp.getName())){
    35                         try {
    36                             String comment = xp.nextText();
    37                             news.setComment(comment);
    38                         } catch (IOException e) {
    39                             // TODO Auto-generated catch block
    40                             e.printStackTrace();
    41                         }
    42                     }
    43                     else if("detail".equals(xp.getName())){
    44                         try {
    45                             String detail = xp.nextText();
    46                             news.setDetail(detail);
    47                         } catch (IOException e) {
    48                             // TODO Auto-generated catch block
    49                             e.printStackTrace();
    50                         }
    51                     }
    52                     else if("image".equals(xp.getName())){
    53                         try {
    54                             String imageurl = xp.nextText();
    55                             news.setImageurl(imageurl);
    56                         } catch (IOException e) {
    57                             // TODO Auto-generated catch block
    58                             e.printStackTrace();
    59                         }
    60                     }
    61                     break;
    62                 case XmlPullParser.END_TAG:
    63                     if("news".equals(xp.getName())){
    64                         newsList.add(news);
    65                     }
    66                     break;
    67                 }
    68                 try {
    69                     // 让解析器的指针后移,并返回事件类型
    70                     type = xp.next();
    71                 } catch (IOException e) {
    72                     // TODO Auto-generated catch block
    73                     e.printStackTrace();
    74                 }
    75             }
    76             
    77         } catch (XmlPullParserException e) {
    78             // TODO Auto-generated catch block
    79             e.printStackTrace();
    80         }
    81     }
    82 
    83 }
  • 相关阅读:
    C# 开发Chrome内核浏览器(WebKit.net)
    SQL 存储过程语句拼接愁人的时间类型
    Linux简介
    揭秘Node.js深受欢迎的原因
    6个强大的AngularJS扩展应用
    ElasticSearch NEST
    web中的各种打印方案
    配置问题总结
    leetcode -day29 Binary Tree Inorder Traversal &amp; Restore IP Addresses
    HBase高速导入数据--BulkLoad
  • 原文地址:https://www.cnblogs.com/yangyongqian/p/5568230.html
Copyright © 2011-2022 走看看