zoukankan      html  css  js  c++  java
  • XML之pull解析

    PULL是STAX的一个实现技术
    STAX是The Streaming API for XML的缩写,是一种利用拉模式解析XML文档的API
    STAX通过提供一种基于世界迭代器的API让程序员控制xml文档的解析过程
    A安卓系统内置的PULL解析器也可以进行XML文件的解析
    Pull解析器是一个java的开源项目,既可以用于安卓,也可以用于javaEE
    pull解析器运行方式与SAX解析器相似,同样是基于事件驱动的,是由客户端的程序自己控制xml事件主动调用事件方法
    当要使用pull解析的方式开发javaEE时需要下载单独的开发工具包
    jar包的导入,add jar与add External jars的区别,前者是导入到当前工程内部,后者只是使用本地jar包并没有导入工程内部,导入到内部的方法就是在工程内部新建文件夹并且复制过来,再导入。

    1.创建pull解析器,XmlPullParser
    2.将xml文档内容传递给解析器
    3.客户端手动完成解析
    XmlPullParser解析器不会自动解析Xml文档,需要调用存在的解析方法next();在程序中获取当前事件对象,执行元素相关操作。
    实例代码

    XmlPullParserFactory factory=XmlPullParserFactory.newInstance();//创建解析工厂
    XmlPullParser xpp=factory.newPullParser();//创建解析器
    xpp.setInput(new FileInputStream(".xml"),"UTF-8");//读取xml文件
    
    int eventType=xpp.getEventType();获取当前节点事件类型,不同的int值代表不同的事件类型是被封装成字段的。
    eventType=xpp.next();//下一个节点事件类型
    通过判断事件类型在调用下面的方法
    xpp.getAttributeValue()//获取标签属性值
    xpp.nextText()//获取标签后面文本内容
    
    XmlPullParserFactory factory=XmlPullParserFactory.newInstance();//创建解析工厂
    XmlPullParser xpp=factory.newPullParser();//创建解析器
    xpp.setInput(new FileInputStream(".xml"),"UTF-8");//读取xml文件
    int event;
    boolean isFound=false;
    while((event=parser.getEventType)!=XmlPullParser.END_DOCUMENT){//判断当前事件是否是结束事件。
    if(event==XmlPullParser.START_TAG&&xpp.getName().equals("name")){//获取name元素开始事件
    String bookName=xpp.nextText();//返回name标签后面的文本,此时获取文本之后指针会指向下个事件
    if(bookName.equals("书名"))    
    isFound=true;
    }
    if(event==XmlPullParser.START_TAG&&xpp.getName().equals("price")&&isFound){//获取价格。
    syso(xpp.nextText());
    }
    xpp.next();
    }
  • 相关阅读:
    hdoj 2803 The MAX【简单规律题】
    hdoj 2579 Dating with girls(2)【三重数组标记去重】
    hdoj 1495 非常可乐【bfs隐式图】
    poj 1149 PIGS【最大流经典建图】
    poj 3281 Dining【拆点网络流】
    hdoj 3572 Task Schedule【建立超级源点超级汇点】
    hdoj 1532 Drainage Ditches【最大流模板题】
    poj 1459 Power Network【建立超级源点,超级汇点】
    hdoj 3861 The King’s Problem【强连通缩点建图&&最小路径覆盖】
    hdoj 1012 u Calculate e
  • 原文地址:https://www.cnblogs.com/ss561/p/4612223.html
Copyright © 2011-2022 走看看