浅谈用java解析xml文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈用java解析xml文档相关的知识,希望对你有一定的参考价值。

    关于xml本身的语法及使用的环境不多说了,网上有很多规则,

    然对xml文档进行解析,一般分为四种解析方式,基于java官方文档的Dom 和Sax解析,还有就是基于 第三方jar包的 Jdom 和

     Dom4j解析。

    一、首先我们来看Dom解析:

    1、定义工厂,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器。

       DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

      在应用程序获取对 DocumentBuilderFactory 的引用后,它可以使用工厂来配置和获取解析器实例。 

      使用DocumentBuilderFactory的目的是为了创建与具体解析器无关的程序,当DocumentBuilderFactory类的静态方法

      newInstance()被调用时,它根据一个系统变量来决定具体使用哪一个解析器。

    2、获取具体的dom解析器。

       DocumentBuilder db = dbf.newDocumentBuilder();

      

      当获得一个工厂对象之后,使用它的静态方法newDocumentBuilder(),可以获得一个DocumentBuilder对象。

      这个对象代表了具体的DOM解析器。

      解析器的具体实现对于程序来说并不重要。  

                 然后我们就可以使用这个解析器对xml文档进行解析。

    3、解析一个xml文档,获得document对象,以books.xml为例

      Document document = db.parse("books.xml");

            根据标签名访问一个节点。

      NodeList bookList = document.getElementsByTagName("book");

    4、遍历节点

      for (int i = 0; i < bookList.getLength(); i++) {

        //获得元素,将节点强制转换为元素

         Element element = (Element)bookList.item(i)  

      }

    操作子节点的元素:element.getElementsByTagName("节点名").item(0)

        获取子节点value值可以使用getFirstChild().getNodeValue() 方法,

           具体可以查看API帮助文档进行操作。

    Dom 的优点:树结构,直观好理解,代码易编写,解析过程中树结构保存在内存中,易于修改、删除、重新排列等多种功能。

           缺点:当xml文件较大时,对内存的消耗比较大,内存容易溢出。

 

以上是关于浅谈用java解析xml文档的主要内容,如果未能解决你的问题,请参考以下文章

浅谈用java解析xml文档

浅谈用java解析xml文档

浅谈用原生 js 实现数组的 slice 方法

java解析xml的几种方式哪种最好?

浅谈用原生 js 实现函数的 bind 方法

浅谈用极大化思想解决最大子矩阵问题