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",可以是文件路径字符串,可以是一个文件对象,也可以是

           一个文件输入流对象。

java解析XML文件四种方法之引入源文件的更多相关文章

  1. 【Java】详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...

  2. Java解析XML的四种方法详解 - 转载

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法 在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化 ...

  3. java解析xml文件四种方式

    1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找 ...

  4. JAVA解析XML的四种方法

    XML文件:test.xml <?xml version="1.0" encoding="UTF-8"?> <employees> &l ...

  5. 详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

  6. [转]详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

  7. JAVA解析XML的四种方式

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...

  8. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  9. Java中解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

随机推荐

  1. Deep Learning with Torch

    原文地址:https://github.com/soumith/cvpr2015/blob/master/Deep%20Learning%20with%20Torch.ipynb Deep Learn ...

  2. pandas小记:pandas基本设置

    http://blog.csdn.net/pipisorry/article/details/49519545 ): print(df) Note: 试了好久终于找到了这种设置方法! 它是这样实现的 ...

  3. 【一天一道LeetCode】#95. Unique Binary Search Trees II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  4. XML跨平台,你懂的

    XML跨平台,你懂的 [引子]       90后小妹,问我,"都说XML跨平台,偶真的,不理解.XML语言的这大优势,倒是深深记在脑海里了."      当然,偶立马应声答到,& ...

  5. ECMAScript 6之变量的解构赋值

    1,数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前,为变量赋值,只能直接指定值. var a = 1; va ...

  6. XBMC源代码分析 7:视频播放器(dvdplayer)-输入流(以libRTMP为例)

    前文分析了XBMC的基本结构: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 XBMC源代码分 ...

  7. 10_Android中通过HttpUrlConnection访问网络,Handler和多线程使用,读取网络html代码并显示在界面上,ScrollView组件的使用

     编写如下项目: 2 编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <mani ...

  8. kettle文件自动化部署(shell脚本执行):命令行参数传入

    shell脚本中调用kitchen 和 pan去执行,job和transformation文件.分 windows和 dos系统两种. 举个简单的小例子 shell脚本: export JAVA_HO ...

  9. struts2 easyui实现datagrid的crud

    最近两天因为项目需要,接触了easyui,要用它的datagrid实现crud.第一次做,花了一天时间才完成所有功能,昨天做另外一个模块,同样的功能只用了两个小时. 现在把第一次做datagrid时遇 ...

  10. Git错误一例

    Bitbucket一直不稳定,push, pull经常失效.幸好还有goagent可以用. 把git的全局配置改为走goagent代理,可以正常使用: [http] proxy = http://12 ...