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 NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
第七章
高级类特征
static
类属性由该类的所有实例共享
public static int total=0;
当total所属类被数次实例化的时候 total只有一个而不是多个
也可静态初始化static
public static int total;
static{
total=100;
}
static标记的变量或者方法由整个类(所有实例)共享
单子模式
class Single{
......
遇到一个java编程面试题,当时没有写出来,回来仔细想了想,写出答案,一共以后参考!
要求:将字符串"I am a good student."转换成"student. good a am I"
java代码为:
public class Application
{
private String s;
public void setS(String s)
{
s=s;
}
public S ......
简化Java应用程序的打包和发布
发布Java应用程序时你会感到困难?好在Java提供了一系列打包和发布工具,可以显著的简化发布过程
该文章提供了打包Java code的几种方法,我们将会探讨Java manifest 文件,给出用于管理JAR文件所依赖文件、估计跨平台发布所需的CLasspath的合适方法.我也会解释如何使用manifest包版本特性 ......