加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml解析之PULL

发布时间:2020-12-16 08:33:12 所属栏目:百科 来源:网络整理
导读:XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据; 优点:简单直观,但需要将文档读取到内存, 缺点:并不太适合移动设备; 2,SAX SAX是一个解析速度快并且占用内存少的xml解析器; 采

XML解析有三种方式

1,DOM

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

优点:简单直观,但需要将文档读取到内存,

缺点:并不太适合移动设备;

2,SAX

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

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

3,PULL(移动端推荐使用

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


PULL解析XML核心代码:

XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();  
//XmlPullParser parser = Xml.newPullParser();
parser.setInput(fileInputStream,“utf-8”);//设置数据源编码  
int eventCode = parser.getEventType();//获取事件类型  
while(eventCode != XmlPullParser.END_DOCUMENT)  {     
    switch (eventCode){     
        case XmlPullParser.START_DOCUMENT: //开始读取XML文档    
        //实例化集合类    
        break;     
    case XmlPullParser.START_TAG://开始读取某个标签       
        if("person".equals(parser.getName())) {     
        //通过getName判断读到哪个标签,然后通过nextText()获取文本节点值,或通过getAttributeValue(i)获取属性节点值  
        }     
        break;  
    case XmlPullParser.END_TAG://读完一个Person,可以将其添加到集合类中  
        break;  
    }  
    parser.next();  
}



下面是android端使用Pull解析XML的代码demo

下载地址:

android端Pull解析XML_DEMO

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读