zoukankan      html  css  js  c++  java
  • JAVA之DOM和SAX解析器

    xml的解析器:
    DOM解析:Document Object Module 文档对象模型
    SAX解析:Simple API for XML 用于对 XML 进行语法分析的事件驱动的简单 API


    JAXP:Java API for XML Processing,
    用于XML文档处理的使用Java语言编写的编程接口。
    不提供语法分析功能,却提供到达这些语法分析器和结果的方式。
    (标准和规范)

    DOM解析:文档对象模型
    一次性读入内存,形成树状结构
    可以反复频繁访问
    不适合操作大的xml文件


    DOM解析的API:
    Node :文档树中的单个节点
    Document:表示整个 HTML 或 XML 文档
    Element:表示 HTML 或 XML 文档中的一个元素
    NodeList:文档树中的一组节点

    得到Document对象:
    1.创建解析器工厂
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    2.通过解析器工厂创建解析器对象
    DocumentBuilder builder = factory.newDocumentBuilder();
    3.解析xml文件,得到Document对象
    Document document=builder.parse(String path);

    NodeList类常用方法:
    int getLength():列表中的节点数。
    Node item(int index): 返回集合中的第 index 个项。

    Document类生成xml文档常用方法:
    createElement()创建DOM节点
    createAttribute()创建节点属性
    setTextContent() 设置节点文本
    appendChild()添加子节点


    DOM解析:
    优点:常驻内存,对于提高应用程序频繁访问,提高效率
    缺点:当xml文件非常复杂的时候,占用太多的内存空间

    -----------------------------------------------------------------
    SAX解析:事件驱动,顺序解析


    步骤:
    1.创建解析器工厂
    SAXParserFactory factory=SAXParserFactory.newInstance();
    2.通过解析器工厂创建解析器对象
    SAXParser parser=factory.newSAXParser();
    3.解析xml文件 需要传入xml文件对象,和继承DefaultHandler类的子类 重写了读取xml信息的方法

    parser.parse(String path,new MyDefaultHandler());

    DefaultHandler的方法 这些方法都没有实现 需要继承之后 按照自己的需求实现:
    startDocument() 文档起始位置
    startElement() 元素起始位置:通过该方法的 qName参数得到元素名
    characters() 文本元素:根据参数ch字符数组和int start,int length 索引和长度构造一个string 对象 就是元素的文本内容
    endElement() 元素结束位置
    endDocument() 文档结束位置

  • 相关阅读:
    PJSUA2开发文档--第五章 帐户(号)Accounts
    PJSUA2开发文档--第四章 端点ENDPOINT
    PJSUA2开发文档--第三章 PJSUA2高级API
    PJSIP 自动化测试工具安装 Python安装
    pjsip 播放音视频
    TTS 文字转语音 ekho
    使用 pjsip 代码独立开发
    windows网络编程中文 笔记(二)
    coTurn测试程序之 turnutils_uclient
    coTurn测试程序之turnutils_stunclient.exe
  • 原文地址:https://www.cnblogs.com/java888/p/10430813.html
Copyright © 2011-2022 走看看