首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>JAVA技术>正文

Java开发中实现DOM文档和XML文件间的转换

http://www.oklinux.cn  2008-10-25  ccidnet DuDu  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

本文简要描述了DOM的概念和内部逻辑结构,实例讲述DOM文档操作和XML文件互相转换的java实现过程。

1. DOM简介

目前,W3C已于2000年11月13日推出了规范DOM level 2。文档对象模型(DOM)是HTML和XML文档的编程接口规范,它与平台和语言是无关的,因而可以用各种语言在各种平台上实现。该模型定义了THML和XML文件在内存中的逻辑结构(即为文档),提供了访问、存取THML和XML文件的方法。利用DOM规范,可以实现DOM 文档和XML之间的相互转换,遍历、操作相应DOM文档的内容。可以说,要自由的操纵XML文件,就要用到DOM规范。

2. DOM内部逻辑结构

DOM文档中的逻辑结构可以用节点树的形式进行表述。通过对XML文件的解析处理,XML文件中的元素便转化为DOM文档中的节点对象。DOM的文档节点有Document、Element、Comment、Type等等节点类型,其中每一个DOM文档必须有一个Document节点,并且为节点树的根节点。它可以有子节点,或者叶子节点如Text节点、Comment节点等。任何的格式良好的XML文件中的每一个元素均有DOM文档中的一个节点类型与之对应。利用DOM接口将XML文件转化成DOM文档后,我们就可以自由的处理XML文件了。

3. java中的DOM接口

DOM规范提供的API的规范,目前Sun公司推出的jdk1.4测试版中的java API遵循了 DOM level 2 Core推荐接口的语义说明,提供了相应的java语言的实现。

在org.xml.dom中,jkd1.4提供了Document、DocumentType、Node、NodeList、Element、Text等接口,这些接口均是访问DOM文档所必须的。我们可以利用这些接口创建、遍历、修改DOM文档。

在javax.xml.parsers中,jkd1.4提供的DoumentBuilder和DocumentBuilderFactory组合可以对XML文件进行解析,转换成DOM文档。

在javax.xml.transform.dom和javax.xml.transform.stream中,jdk1.4提供了DOMSource类和StreamSource类,可以用来将更新后的DOM文档写入生成的XML文件中。

4. 例程

4.1 将XML文件转化成DOM文档

这个过程是获得一个XML文件解析器,解析XML文件转化成DOM文档的过程。

Jdk1.4中,Document接口描述了对应于整个XML文件的文档树,提供了对文档数据的访问,是该步骤的目标。Document接口可以从类DocumentBuilder中获取,该类包含了从XML文档获得DOM文档实例的API。XML的解析器可以从类DocumentBuilderFactory中获取。在jdk1.4中,XML文件转化成DOM文档可以有如下代码实现:

//获得一个XML文件的解析器
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//解析XML文件生成DOM文档的接口类,以便访问DOM。
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse( new File(FileName) );

4.2 遍历DOM文档

获得接口类document实例后,可以对DOM的文档树进行访问。要遍历DOM文档,首先要获得Root元素。然后获得Root元素的子节点列表。这里通过递归的方法实现遍历的目的。

//获得Root元素
Element element = document.getDocumentElement();
//获得Root元素的子节点列表
nodelist = element.getChildNodes();
//用递归方法实现DOM文档的遍历
GetElement(nodelist);

其中GetElement方法实现如下:

  public void GetElement(NodeList nodelist){
  Node cnode;
  int i,len;
  String str;
  if(nodelist.getLength() == 0)
  // 该节点没有子节点

  return;
  }
  for(i=0;i 1)
  System.out.println(" " str " " len);
  }
  }
  }

注意:上面的代码只是显示Node类型和Text类型的对象。它们的类型标识分别是1和3。

4.3 修改DOM文档

修改DOM文档的API在DOM level 2 Core规范中做了说明,jkd1.4中的org.xml.dom中实现了这些API。修改DOM文档操作主要集中在Document、Element、Node、Text等类中,这里给出的例子中是在解析出的DOM文档中增加一系列对象,对应与在XML文件中增加一条记录。

共2页: 上一页 1 [2] 下一页
// 获得Root对象
Element root = document.getDocumentElement();
// 在DOM文档中增加一个Element节点
Element booktype = document.createElement("COMPUTES");
//将该节点转化成root对象的子节点
root.appendChild(cdrom);
//在DOM文档中增加一个Element节点
Element booktitle = document.createElement("Title");
//将该节点转化成booktype对象的子节点
booktype.appendChild(booktitle);
//在DOM文档中增加一个Text节点
Text bookname = document.createTextNode("understand Corba");
//将该节点转化成bookname对象的子节点
booktitle.appendChild(bookname);

上一篇:盛大Widget设计大赛延迟两周结束   下一篇:J2ME应用程序内存优化三招

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·J2ME应用程序内存优化三招
·java对String字符串对象的创建以及管理
·Java应用:编写高级JavaScript应用代码
·实例教程:巧用Java 实现个性MSN聊天功能
·在java中产生随机数的两种方式过程详解
·JAVA高手帮你解析XML配置文件的读取操作
·java语言中异常错误恢复处理的异常类型
·使用Java程序连接各种数据库的方法介绍
·JSP动态网站环境搭建应用中详细步骤介绍
·利用Jsvc把Java程序嵌入到Linux服务中去
·在JSP环境中如何来配置和使用fckeditor
·Oracle数据库和JSP连接要注意的一些问题
·新手看招:JSP中表单数据存储的通用方法
·介绍JSP程序动态网站环境搭建的详细步骤
·实例解析:Jsp JavaBean循序渐进教程(一)
·介绍J2EE应用程序的授权概念和解决方案
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·J2ME应用程序内存优化三招
·java对String字符串对象的创建以及管理
·Java应用:编写高级JavaScript应用代码
·实例教程:巧用Java 实现个性MSN聊天功
·在java中产生随机数的两种方式过程详解
·JAVA高手帮你解析XML配置文件的读取操
·java语言中异常错误恢复处理的异常类型
·使用Java程序连接各种数据库的方法介绍
·JSP动态网站环境搭建应用中详细步骤介
·利用Jsvc把Java程序嵌入到Linux服务中
·在JSP环境中如何来配置和使用fckeditor
·Oracle数据库和JSP连接要注意的一些问
  阅读排行
·JAVA技术:AJAX jsp无刷新验证码实例
·JSP动态网站环境搭建应用中详细步骤介
·使用prototype.js写的读取RSS的例子
·实例教程:Java Socket编程的一个秘密类
·Java安全:运用加密技术保护Java源代码
·介绍JSP程序动态网站环境搭建的详细步
·J2EE探索者:用JAAS和JSSE实现Java安全
·利用Jsvc把Java程序嵌入到Linux服务中
·进阶教程:编写高级JavaScript应用代码
·在JSP环境中如何来配置和使用fckeditor
·实例教程:巧用Java 实现个性MSN聊天功
·JAVA综合--如何掌握JDK1.5枚举类型
·Oracle数据库和JSP连接要注意的一些问
·JAVA高手帮你解析XML配置文件的读取操
·使用Java程序连接各种数据库的方法介绍
网摘收藏: