Java与XML联合编程之DOM篇
Java与XML联合编程之DOM篇
DOM初步
DOM
是Document Object
Model的缩写,即文档对象模型。前面说过,XML将数据组织为一颗树,所以DOM就是对这颗树的一个对象描叙。通俗的说,就是通过解析XML文档,为
XML文档在逻辑上建立一个树模型,树的节点是一个个对象。我们通过存取这些对象就能够存取XML文档的内容。
下面我们来看一个简单的例子,看看在DOM中,我们是如何来操作一个XML文档的。
这是一个XML文档,也是我们要操作的对象:
<?xml version="1.0" encoding="UTF-8"?>
<messages>
<message>Good-bye serialization, hello Java!</message>
</messages>
下面,我们需要把这个文档的内容解析到一个个的Java对象中去供程序使用,利用JAXP,我们只需几行代码就能做到这一点。首先,我们需要建立一个解析器工厂,以利用这个工厂来获得一个具体的解析器对象:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
我
们在这里使用DocumentBuilderFacotry的目的是为了创建与具体解析器无关的程序,当
DocumentBuilderFactory类的静态方法newInstance()被调用时,它根据一个系统变量来决定具体使用哪一个解析器。又因为
所有的解析器都服从于JAXP所定义的接口,所以无论具体使用哪一个解析器,代码都是一样的。所以当在不同的解析器之间进行切换时,只需要更改系统变量的
值,而不用更改任何代码。这就是工厂所带来的好处。这个工厂模式的具体实现,可以参看下面的类图。
DocumentBuilder db = dbf.newDocumentBuilder();
当获得一个工厂对象后,使用它的静态方法newDocumentBuilder()方法可以获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器。但具体是哪一种解析器,微软的或者IBM的,对于程序而言并不重要。
然后,我们就可以利用这个解析器来对XML文档进行解析了:
Document doc = db.parse("c:/xml/message.xml");
DocumentBuilder
的parse()方法接受一个XML文档名作为输入参数,返回一个Document对象,这个Document对象就代表了一个XML文档的树模型。以后
所有的对XML文档的操作,都与解析器无关,直接在这个Document对象上进行操作就可以了。而具体对
Document操作的方法,就是由DOM所定义的了。
点击可放大
Jaxp
支持W3C所推荐的DOM
2。如果你对DOM很熟悉,那么下面的内容就很简单了:
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
第五章 数组
数组时多个相同类型数据的组合
数组属于引用类型 数组型数据为对象(object)
每个元素相当于该对象的成员变量
数组的元素可以是任何数据类型 包括基本类型和引用类型
int a[];
Mydate a[]; 引用类型数组
java中声明数组时不能指定其长度 int a[5];非法
java中使用new来创建数组对象
int a[]=new int[10 ......
第七章
高级类特征
static
类属性由该类的所有实例共享
public static int total=0;
当total所属类被数次实例化的时候 total只有一个而不是多个
也可静态初始化static
public static int total;
static{
total=100;
}
static标记的变量或者方法由整个类(所有实例)共享
单子模式
class Single{
......