xml解析知识回顾

Xml的解析

有时候我们与服务器交互的时候,服务器会返回数据通知客户端,数据的格式有两种 XML

JSON,我们需要将返回的数据转换成Bean对象。以下介绍如何将xml转换成bean.解析xml的几种方式:

  1. Dom解析DOM(文档对象模型)是W3C标准,提供了标准的解析Xml方式,但其解析效率一直不尽如人意,这是因为DOM解析XML文档时,把所有内容一次性的装载入内存,并构建一个驻留在内存中的树状结构(节点数)。如果需要解析的XML文档过大,或者我们只对该文档中的一部分感兴趣,这样就会引起性能问题。 特性:基于树状的xml的结构 支持:Dom4j dom4j是一个JavaXML API,它也是一个开放源代码的软件,是jdom的升级品,用来读写XML文件的。

  2. SAX解析 SAX(Simple API for XML)是一种XML解析的替代方法。相比于DOMSAX是一种速度更快,更有效的方法,它既是一个接口,也是一个软件包.但作为接口,SAX是事件驱动型XML解析的一个标准接口不会改变 SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。

  3. Pull解析PullAndroid内置的xml解析器。Pull解析器的运行方式与SAX解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送。 



    Pull开发步骤:

    1. 创建一个Pull解析器
    2. 将文件读进来
    3. 开始解析文档 *判断如果没有读取文档完毕 就循环遍历

    拿到开标签
    拿到开标签后面的文本
    pullParser.nextText();移动游标 


    page2image4752
    String result="";
    

    try {

    //1. 创建Pull解析器

    XmlPullParser pullParser = Xml.newPullParser();
    

    //2. 获取 件的输 流

    InputStream is = c.getAssets().open("weather.xml");
    

    //3. 将 件流绑定Pull解析器

    pullParser.setInput(is, "utf-8");
    

    //4. 获取当前的事件类型:开始 档、结束 档、开始标签、结束标签、 本

    int eventType = pullParser.getEventType();
    

    //5. 只要事件类型不是最后的 档类型 就往下读取

    while (eventType!=XmlPullParser.END_DOCUMENT) {
    

    //7. 如果是开始标签并且标签名为string

    if (eventType==XmlPullParser.START_TAG
    
    &&pullParser.getName().equals("string")) {
    
    result+=pullParser.nextText()+"\n";
    

    }

    //6. 移动游标

    eventType=pullParser.next();
    

    }

    } catch (Exception e) {
    
    e.printStackTrace();
    
    page2image19688


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值