Android(java)的xml文件操作

来源:互联网 发布:淘宝女装前十名店铺 编辑:程序博客网 时间:2024/05/14 05:36

XML解析三种方式

PULL

Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型;推荐使用。

PULL解析XML核心代码

[java] view plaincopy
  1. XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();  
  2. parser.setInput(fileInputStream, “utf-8”);//设置数据源编码  
  3. int eventCode = parser.getEventType();//获取事件类型  
  4. while(eventCode != XmlPullParser.END_DOCUMENT)  {     
  5.     switch (eventCode){     
  6.         case XmlPullParser.START_DOCUMENT: //开始读取XML文档    
  7.         //实例化集合类    
  8.         break;     
  9.     case XmlPullParser.START_TAG://开始读取某个标签       
  10.         if("person".equals(parser.getName())) {     
  11.         //通过getName判断读到哪个标签,然后通过nextText()获取文本节点值,或通过getAttributeValue(i)获取属性节点值  
  12.         }     
  13.         break;  
  14.     case XmlPullParser.END_TAG://读完一个Person,可以将其添加到集合类中  
  15.         break;  
  16.     }  
  17.     parser.next();  
  18. }  
另一个实例:
            XmlPullParser parser = Xml.newPullParser();             File xmlFile = new File("/xxxx/product.xml");             if(xmlFile.exists()){                String model = "";                 String needAdb = "";                 try {                     InputStream open = new FileInputStream(xmlFile);                     parser.setInput(open, "UTF-8");                    XmlUtils.beginDocument(parser, "product");                    model = parser.getAttributeValue(null, "model");                                                                                                                                                                                        } catch (XmlPullParserException e) {                    Log.e(TAG, "XmlPullParserException failed");                    e.printStackTrace();                } catch (IOException e) {                    Log.e(TAG, "IOException failed");                    e.printStackTrace();                }                     Log.d(TAG, "Product Model=" + model + ", needAdb=" + needAdb + ";");             }     




DOM

通用性强,它会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树、检索所需的数据;

简单直观,但需要将文档读取到内存,并不太适合移动设备;


SAX

SAX是一个解析速度快并且占用内存少的xml解析器;

采用事件驱动,它并不需要解析整个文档;

实现:继承DefaultHandler,覆写startElement、endElement、characters等方法;


0 0
原创粉丝点击