zoukankan      html  css  js  c++  java
  • java解析XML文件四种方法之引入源文件

    1.DOM解析(官方)

       try {

             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
             DocumentBuilder               db = dbf.newDocumentBuilder();
             Document                document = db.parse("file");
             NodeList                              list = document.getElementsByTagName("ndoe");//常规的DOM操作
       } catch (Exception e) {
             e.printStackTrace();
       }

       parse()方法加载XML文件到当前程序。

       将XML文件全部加载到内存中,然后逐个解析。

    2.SAX解析(官方)

       try {

             SAXParserFactory factory = SAXParserFactory.newInstance();
             SAXParser               parser = factory.newSAXParser();
             parser.parse("file",handler);
       }catch (Exception e) {
            e.printStackTrace();
       }

       参数handler是一个继承了DefaultHandler类的子类的实例化对象。

       这个子类中解析文档、元素的方法如下:

       --------startDocument()                                      //解析XML文件开始

       -----------------------startElement()                       //开始解析某个元素

       -----------------------endElement()                        //结束解析该元素(通常将解析获得的信息存到一个对象)

       -----------------------startElement()                       //开始解析另一个个元素

       -----------------------endElement()                        //结束解析元素

       ---------endDocument()                                      //解析XML文件结束

       SAX解析XML文件的方法是从头到尾一步一步地解析文档的节点元素,是一种事件驱动模式,对内存耗费

       较小。

    3.JDOM解析(非官方,DOM的拓展)

       需要事先导入一个JDOM的jar包到项目。后面导入的类也是JDOM包下的的类

       try {

              SAXBuilder saxbuilder = new SAXBuilder();
              Document    document = saxbuilder.build("file");
              Element    rootElement = document.getRootElement(); //获得XML文件的根节点
       }catch (Exception e) {
              e.printStackTrace();
       }

       获得根节点之后,通过getChildren()方法获得其子节点的List集合。

    4.DOM4J解析(非官方,DOM的拓展,现在比较流行的)

       同理,由于是非官方的,我们依然需要引入一个DOM4J的jar包

       try {

             SAXReader    reader = new SAXReader();
             Document document = reader.read("file");
             Element rootElement = document.getRootElement();//获得XML文件的根节点
       }catch (Exception e) {
             e.printStackTrace();
       }

       性能优异,灵活性好,功能强大,易使用,所以现在比较流行使用DOM4J解析XML。

    注意:以上所有引入文件方法的参数"file",可以是文件路径字符串,可以是一个文件对象,也可以是

               一个文件输入流对象。

  • 相关阅读:
    问题解决:System.TypeLoadException: 未能从程序集“XXX”中加载类型“XXX
    域名格式验证
    .NET 中String 和StringBuilder 以及他们的区别
    mysql 重设管理员密码 或忘记管理员密码 (必杀)
    CMD 命令
    C# 给多线程传参的三种方式
    django 表单数据的验证实现原理
    django上传文件
    django signal
    Django如何处理语言偏好(根据此可以设置中文)
  • 原文地址:https://www.cnblogs.com/eco-just/p/7758361.html
Copyright © 2011-2022 走看看