zoukankan      html  css  js  c++  java
  • XML文件解析

    XML文件解析(SAX/DOM) :
    什么是SAX(一种标准)?

    :全称是:Simple API for XML,既是一种接口,也是一个软件包
    :作为接口,SAX是事件驱动型XML解析的一个标准接口

    SAX基本原理是怎么样的?

    简单的说就是的文档进行顺序扫描,当文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,有事件处理函数做相应的动作,然后继续同样的扫描,直至文档扫描结束。

    大所属SAX实现都会产生以下类型的事件:{

    1:在文档开始和结束的时触发文档处理事件
    2:在文档内每一个XML元素接受解析的前后触发元素事件
    3:任何元素通常都有单独的事件交付
    4:在处理文档的DTD或Schema时产生DTD或Schhema事件
    5:产生错误事件来用来通知主机应用程序解析错误


    }

    解析文档的过程:
    <doc>
    <para>Hello,world</pars>
    </doc>


    start dicument
    start element:doc
    start element:para -->>1:创建事件处理程序
    characters:para 2:创建SAX解析器
    end element:para 3:将事件处理程序分配给解析器
    end element:doc 4:对文档进行解析,将每个事件发送处理程序
    end docunment
    每次产生事件都会触发相应的函数


    SAX常用接口(由我来复写实现一下接口的方法):

    ContentHandler:

    ContentHandler是java类包中的一个页数的SAX接口,位于org.xml.sax保重,该接口封装了一些对事件处理的方法,当xml解析器开始解析XML输入文档时,它会遇到某些特殊的事件,比如文档的开头与结束,元素的开头和结束,以及元素中的字符数据等方法来响应该事件。

    ContentHandler接口的方法有一下几种:
    public void startDocument() 文件刚开始时执行的方法
    public void endDocument() 文件结束时执行的方法
    public void startElement(String uri, String localName, String qName, Attributes attributes) 属性开始时执行的方法
    public void endElement(String uri, String localName, String qName)属性结束时执行的方法
    public void characters(char ch[], int start, int length)读取属性内容执行的方法


    ErrorHandler:
    DTDHandler:
    EntityHandler:

    SAX解析:

    特性:
    优点:操作方便
    缺点:如果xml文件比较大,则操作非常复杂

  • 相关阅读:
    学习笔记15—Python 存储集
    学习笔记14—Python error集
    学习笔记13—python DataFrame获取行数、列数、索引及第几行第几列的值
    学习笔记12—linux下文件的复制、移动与删除
    学习笔记11—MATLAB 界面设计
    学习笔记10—Python 绘图集
    学习笔记9—python数据表的合并(join(), merge()和concat())
    学习笔记8—MATLAB中奇异值处理办法
    make ffmpeg makefile
    Linux Socket
  • 原文地址:https://www.cnblogs.com/wangmars/p/3239502.html
Copyright © 2011-2022 走看看