解析XML数据

在Java程序中读取XML文件的过程称为解析XML

1.解析XML文件的方式
1)DOM解析(java官方提供)
2)SAX解析(java官方提供)
3) JDOM解析(第三方提供)
4) DOM4J解析(第三方提供)

2.DOM解析XML的步骤
1)创建一个DocumentBuilderFactory的对象
2)创建一个DocumentBuilder对象
3)通过DocumentBuilder的parse(..)方法得到Document对象
4)通过getElementsByTagNam...)方法获取到节点的列表
5)通过for循环遍历每一个节点
6)得到每个节点的属性和属性值
7)得到每个节点的节点名和节点值

代码示例:

3.SAX解析方式

3.1SAX的概述
SAX,全称Simple API for XML,是一种以事件驱动的XMl API,SAX与DOM不同的是它边扫描边解析,自顶向下
依次解析,由于边扫描边解析,所以它解析XML具有速度快,占用内存少的优点

3.2SAX解析XML的步骤
1)创建SAXParserFactory的对象
2)创建SAXParser对象(解析器)
3)创建一个DefaultHandler的子类
4)调用parse方法

代码示例:

Book Default Handler类:

TestSAXPrase类:

XML文件:

输出结果:

4.JDOM方式解析XML文件:

4.1JDOM概述
JDOM是一种解析XML的Java工具包,它基于树型结构,利用纯Java的技术对XML文档实现解析。所以中适合于Java语言

4.2JDOM解析XML的步骤
1)创建一个SAXBuilder对象
2)调用build方法,得到Document对象(通过IO流)
3)获取根节点
4)获取根节点节点的直接子节点的集合
5)遍历集合

5.DOM4J解析XML数据(最常用)

DOM4J是一个Java的XML API,是JDOM的升级品,用来读写XML文件的

DOM4J解析XML的步骤

1)创建SAXReader对象
2)调用read方法
3)获取根元素
4)通过迭代器遍历直接节点

代码示例:

四种方法的比较:

1)DOM解析:
形成了树结构,有助于更好的理解、掌握,且代码容易编写。
解析过程中,树结构保存在内存中,方便修改。但是需要内存较大
2)SAX解析:
采用事件驱动模式,对内存耗费比较小。
适用于只处理XML文件中的数据时
3)JDOM解析:
仅使用具体类,而不使用接口。
API大量使用了Collections 类。

4)DOM4J解析:
JDOM的--种智能分支,它合并了许多超出基本XML文档表示的功能。
它使用接口和抽象基本类方法。
具有性能优异、灵活性好、功能强大和极端易用的特点。
是一个开放源码的文件

原文地址:https://www.cnblogs.com/LuJunlong/p/12152900.html

时间: 2024-10-15 12:43:44

解析XML数据的相关文章

IOS开发使用NSXMLParser、GDataXML两种方式解析XML数据

概括:XML数据解析方式有 *IOS原生的NSXMLParser,只支持SAX方式解析,使用简单 *C语言的libxml2,同时支持DOM和SAX方式解析 *google的GDataXML,只支持DOM方式解析,基于libxml2,使用时需要将编译环境配置为非ARC,并添加libxml2.dylib动态库 GDataXMLDocument 1 使用GDataXML的DOM方式解析XML,需要导入#import "GDataXMLNode.h" /** *  DOM方式解析XML数据 *

iOS解析XML数据

iOS中解析XML数据的类是  NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSXMLParser对象的协议,代码如下: NSXMLParser *xmlParse = [[NSXMLParser alloc] initWithData:data]; [xmlParse setDelegate:self]; [xmlParse parse];// 解析开始 解析对象设置后,我们需

Android系列之网络(四)----SAX方式解析XML数据

?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4044170.html 联系方式:[email protected] [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Androi

【iOS开发-网络】两种常用的方法解析XML数据

解析XML数据常用的有两种方法 第一种 使用Google的GDataXMLNode解析XML数据 使用的是DOM方式解析 先把xml一口吞掉 然后一点一点的解析 第二种 使用苹果自带的NSXMLParser解析XML数据 使用的是SAX方式解析 一个标记一个标记的解析 第一种使用步骤 第一步 首先把GDataXML文件夹放入项目中 第二步 更改Bulid Setting里面的东西 更改头文件搜索路径 在Header Search Paths里面添加路径/usr/include/libxml2 在

网络相关系列之四:数据解析之SAX方式解析XML数据

一.XML和Json数据的引入: 通常情况下.每一个须要訪问网络的应用程序都会有一个自己的server.我们能够向server提交数据,也能够从server获取数据.只是这个时候就有一个问题,这些数据是以什么格式在网络上传输的呢?一般我们都会在网络上传输一些格式化后的数据,这样的数据会有一定的结构规格和语言,当还有一方收到数据消息后就能够依照同样的结构规格进行解析.从而取出它想要的那部分内容. 在网络上数据传输最经常使用的格式:XML和Json.本文就来学习一下XML数据的解析,Json格式的数

160928、JQuery解析XML数据的demo

用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 方案1 当后台返回的数据类型是xml对象,如下: 那么,前端jquery解析: 就会得到"成功!"这个文字信息. 方案2 当你要解析一个xml文件对象时候,如xmlfile.xml: $.get("xmlfile.xml",function(xml){ $(xml).find("item"

java解析xml数据(使用jaxp的方式)

解析xml主要有两种方式,一种是dom方式,一种是sax的方式. 1.dom方式是将xml数据作为一个对象生成一个树状结构放入内存中, (1)优点:方便对xml中的数据进行增删改,是W3C推荐的处理xml数据的方式 (2)缺点:这种方式不利于读取比较大的xml文件,容易造成内存溢出. 2.sax方式是采用事件驱动,边读边解析,从上往下,一行一行的解析的方式进行操作 (1)优点:在处理比较大的xml文件时不会造成内存溢出的情况 (2)缺点:不能实现增删改的操作,不是官网标准,但是几乎所有的xml解

微信公众号开发之解析xml数据包

在上次开发的基础上(链接在这里:https://www.cnblogs.com/segho/p/11654719.html) 我们来对用户发送过来的消息进行解析: 需要用到dom4j.jar,自行百度下载资源 我们将xml文件解析文map键值对, 将其直观的反映在console控制台上 WxService中的parseRequest方法代码如下: 1 public static Map<String, String> parseRequest(InputStream is) { 2 Map&l

DOM的概念和简单应用:使用DOM解析XML数据

概念:DOM是Document Object Model的简称,即文档数据模型. Oracle公司提供了JAXP(Java API for XML Processing)来解析XML.JAXP会把XML文档转换成一个DOM树,JAXP的三个包都在JDK中. org.w3c.dom;W3C推荐的解析文档的接口 org.xml.sax;使用SAX解析XML文档的接口 javax.xml.parsers;解析器工厂工具 一.使用DOM解析XML文档的步骤 1.创建解析器工厂对象,即DocumentBu