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 ......
第四章
运算符,表达式和流程控制
变量用于记录数值可变的数据
java变量使用前必须先声明和初始化
成员变量在类的定义中声明
在创建对象的同时创建有关的成员变量
成员变量创建后系统自动对其进行默认初始化和显式初始化 成员变量依附于对象而存在
&&与 ||或 =赋值运算符
分支语句
if else
int i;
swit ......
StringBuilder output = new
StringBuilder();
String xmlString =
@"<bookstore>
<book genre='novel' ISBN='10-861003-324'>
<title>The Handmaid's Tale</title>
<price>19.95</price>
</book>
<book genre='novel' ISBN='1-861001-57-5' ......
著作权保护声明
Chinaitlab高度重视知识产权保护并遵守中国各项知识产权法律、法规和具有约束力规范性文件。根据法律、法规和规范性文件要求,Chinaitlab
制定了旨在保护知识产权权利人合法权益的措施和步骤,当著作权人和/或依法可以行使著作权的权利人(以下简称“权利人”)发现在本站网页的内容或下
&nbs ......
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator
{
public static void main(String[] args)
......