zoukankan      html  css  js  c++  java
  • Java web——xml文件读取的解析方式(DOM和SAX)

    其实解析xml文件有四种方式:DOM,JDOM,DOM4J,SAX。
    我们来说与平台无关的两种官方解析方式:DOM 和 SAX

    一、DOM 解析
    在 Java 代码中,xml 文件是标记型文档,这时用 dom 来解析 xml 文件 dom 会根据 html 的层级结构在内存中分配一个树形结构,把html的标签,属性和文本都封装成对象

    DOM 解析步骤:
    1、使用 newInstance 方法,创建一个 DocumentBuilderFactory 的对象。
    2、创建一个 DocumentBuilde r对象,通过 DocumentBuilder 的对象的 parse[]
    方法加载 xml 文件到当前项目下,如:

    DocumentBuilder db=dbf.newDocumentBuilder();

    Document document=db.parse(uri);

    3、获取 xml 文件

    NodeList booklist = document.getElementsByTagName(节点名称);

    4、用foreach方法进行遍历
    5、解析子节点
    NodeList childnode=book.getChildNodes();可用childnode.item(k).getNodeType()==Node.ELEMENT_NODE这个方法进行判断以区分text类型的node以及element类型的node。

    DOM 解析的优点:可以很方便实现增删改的功能
    缺点:如果文件过大,造成内存溢出

    二、SAX 解析

    在 Java 中,SAX 解析采用事件驱动,边读边解析,从上到下,一行一行的解析,解析到某一个对象,返回对象名称。而且当SAX解析结束,不会保存任何XML文档的数据。

    SAX 解析步骤:
    1、创建一个 SAXParserFactory 对象。

    SAXParserFactory factory = SAXParserFactory.newInstance();

    2、创建一个 SAXParser 对象通过 parse 方法加载 xml 文件。

    SAXParser parser = factory.newSAXParser();

    这时与DOM的区别是这里需要一个 handler,此时需要创建一个 handler 类。

    3、handler 类需要继承 DefaultHandler。

    SAX 解析的优点:如果文件过大,不会造成内存溢出,方便实现查询操作;
    缺点:不能实现增删改操作;

  • 相关阅读:
    Cox回归模型【生存分析】
    推荐系统整理
    推荐——基于python
    经纬度坐标数据处理——基于R
    横截面数据分类——基于R
    《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记
    python模块hashlib & hmac
    python unittest+parameterized,单元测试框架+参数化
    使用docker安装mysql并连接
    用docker部署RabbitMQ环境
  • 原文地址:https://www.cnblogs.com/jingxinbk/p/12458582.html
Copyright © 2011-2022 走看看