浅谈用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文档(四)
继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使 ...
- 浅谈用java解析xml文档(三)
接上一篇,本文介绍使用JDOM解析xml文档, 首先我们还是应该知道JDOM从何而来,是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初, JDOM作 ...
- 浅谈用java解析xml文档(二)
上一文中总结了dom解析xml文档的方式,本文开始总结使用SAX解析xml 的方式及它的优缺点! SAX(Simple API for XML),是指一种接口,或者一个软件包. 首先我们应该知道SAX ...
- java 解析XML文档
Java 解析XML文档 一.解析XML文档方式: 1.DOM方式:将整个XML文档读取到内存中,按照XML文件的树状结构图进行解析. 2.SAX方式:基于事件的解析,只需要加载XML中的部分数据,优 ...
- Java解析XML文档(简单实例)——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...
- Java解析XML文档——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object M ...
- java解析xml文档(dom)
DOM解析XML文档 读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵. DOM解析的特性就是读取xml文件 ...
- JAVA读取XML,JAVA读取XML文档,JAVA解析XML文档,JAVA与XML,XML文档解析(Document Object Model, DOM)
使用Document Object Model, DOM解析XML文档 也可参考我的新浪博客:http://blog.sina.com.cn/s/blog_43ac5543010190w3.html ...
- java 解析xml文档---通过XmlPullParser解析方式
package com.zx; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayLi ...
随机推荐
- 取得Resultset的记录条数
public Boolean exists(String sql) { try { stm = conn.createStatement( java.sql.ResultSet.TYPE_SCROLL ...
- 浅析Netty的异步事件驱动(一)
本篇文章着重于浅析一下Netty的事件处理流程,Netty版本为netty-3.6.6.Final. Netty定义了非常丰富的事件类型,代表了网络交互的各个阶段.并且当各个阶段发生时,触发相应的事件 ...
- HTTP协议理解与应用总结
总结了自己在实际工作场景中遇到的与http协议相关的一些内容的理解. Request & Response Request格式 <request-line> 比如:GET /api ...
- HTML5如何播放本地文件
HTML5在操作的过程中,很多朋友会遇到一个问题,那就是在播放本地文件的时候时常会有一些问题存在,使得HTML5才操作的过程中本地文件播放不流畅或者是不能够正常的播放.现在,我们就来看看HTML5如何 ...
- 跟着Android官网学习Activity
1.Activity介绍 An Activity is an application component that provides a screen with which users can int ...
- EXCEL 建立工作薄与工作表
//1.引用单元 uses ComObj; //2.建立工作薄与工作表 procedure TForm1.Button1Click(Sender: TObject); Var ExcelApp,She ...
- light oj 1008 - Fibsieve`s Fantabulous Birthday
1008 - Fibsieve`s Fantabulous Birthday PDF (English) Statistics Forum Time Limit: 0.5 second(s) Me ...
- Java面试题集(51-70)
Java程序员面试题集(51-70) 51.类ExampleA 继承Exception,类ExampleB 继承ExampleA. 有如下代码片断: try{ thrownew ExampleB(“b ...
- Modernizr 与 Polyfill
之前提到,Modernizr 是 HTML5 和 CSS3 的特性检测工具,这里简单介绍一下它的用法.最简单的用法是在页面的 <head> 中添加 Modernizr 的 JavaScri ...
- power designer 水电费缴纳系统的设计
alter table POWER drop constraint FK_POWER_REFERENCE_USERS; drop table POWER cascade constraints; /* ...