• pull解析xml(android)


       1. package com.cn.service;   
       2.   
       3. import java.io.IOException;   
       4. import java.io.InputStream;   
       5. import java.io.OutputStream;   
       6. import java.util.ArrayList;   
       7. import java.util.List;   
       8.   
       9. import org.xmlpull.v1.XmlPullParser;   
      10. import org.xmlpull.v1.XmlSerializer;   
      11.   
      12. import android.util.Xml;   
      13.   
      14. import com.cn.domain.Persion;   
      15. /****  
      16.  * 采用Pull解析XML  
      17.  *   
      18.  * ****/  
      19. public class PULLPersionService {   
      20.   
      21.     public static List<Persion> getPersino(InputStream is)throws Exception{   
      22.         List<Persion> list = null;   
      23.         Persion persion = null;   
      24.         XmlPullParser parser = Xml.newPullParser();   
      25.         parser.setInput(is, "UTF-8");   
      26.         int event = parser.getEventType();   
      27.         while(event != XmlPullParser.END_DOCUMENT){   
      28.             switch (event){   
      29.             case XmlPullParser.START_DOCUMENT:   
      30.                 list =  new ArrayList<Persion>();   
      31.                 break;   
      32.             case XmlPullParser.START_TAG:   
      33.                 if("person".equals(parser.getName())){//得到指针所指向的节点名称   
      34.                     int id = Integer.parseInt(parser.getAttributeValue(0));   
      35.                     persion = new Persion();   
      36.                     persion.setId(id);   
      37.                 }   
      38.                 if(persion != null){   
      39.                     if("name".equals(parser.getName())){   
      40.                         String name = parser.nextText();   
      41.                         persion.setName(name);   
      42.                     }else if("age".equals(parser.getName())){   
      43.                         String age = parser.nextText();   
      44.                         persion.setName(age);   
      45.                     }   
      46.                 }   
      47.                 break;   
      48.             case XmlPullParser.END_TAG:   
      49.                 if("person".equals(parser.getName())){   
      50.                     list.add(persion);   
      51.                     persion = null;   
      52.                 }   
      53.                 break;   
      54.             default:   
      55.                 break;   
      56.             }   
      57.         }   
      58.         event = parser.next();   
      59.         return list;   
      60.     }   
      61.        
      62.     public static void save(List<Persion> list,OutputStream os) throws IllegalArgumentException, IllegalStateException, IOException{   
      63.         XmlSerializer serializer = Xml.newSerializer();   
      64.         serializer.setOutput(os, "UTF-8");   
      65.         serializer.startDocument("UTF-8", true);   
      66.         serializer.startTag(null, "persons");   
      67.         for(Persion persion : list){   
      68.             serializer.startTag(null, "person");   
      69.             serializer.attribute(null, "id", String.valueOf(persion.getId()));   
      70.                 serializer.startTag(null, "name");   
      71.                 serializer.text(persion.getName());   
      72.                 serializer.endTag(null, "name");   
      73.                    
      74.                 serializer.startTag(null, "age");   
      75.                 serializer.text(String.valueOf(persion.getAge()));   
      76.                 serializer.endTag(null, "age");   
      77.             serializer.endTag(null, "person");   
      78.         }   
      79.         serializer.endTag(null, "persons");   
      80.         serializer.endDocument();   
      81.         os.flush();   
      82.         os.close();   
      83.     }   
      84. }  
    
    
     
  • 相关阅读:
    几种php加速器比较
    细说firewalld和iptables
    Linux上iptables防火墙的基本应用教程
    mysql 字符串按照数字类型排序
    《设计模式之禅》之六大设计原则下篇
    《设计模式之禅》之六大设计原则中篇
    《设计模式之禅》之六大设计原则上篇
    git bash 乱码问题之解决方案
    nexus没有授权导致的错误
    Java之微信公众号开发
  • 原文地址:https://www.cnblogs.com/qq1988627/p/6606911.html
Copyright © 2020-2023  润新知