• 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();
    }
  • 相关阅读:
    flask(十)使用alembic,进行数据库结构管理,升级,加表,加项
    Python sqlalchemy使用
    flask+script命令行交互工具
    flask+APScheduler 任务调度,计划任务,定时任务
    DBA日常工作职责
    Oracle 的 VKTM 进程
    linux
    UF2.0、O4、UFT、TA众明星背后的秘密
    ORA-01502: 索引或这类索引的分区处于不可用状态
    关于Optimizer_index_cost_adj参数的设置
  • 原文地址:https://www.cnblogs.com/ss561/p/4612223.html
Copyright © 2020-2023  润新知