|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
JAVA文章
>>
JAVAXML
>> 文章正文
Java中四种XML解析技术之不完全测试
热
荐
【字体:
小
大
】
Java中四种XML解析技术之不完全测试
作者:- 文章来源:- 点击数: 更新时间:2006-4-20
Java中四种XML解析技术之不完全测试
JSP教程-Java与XML
在平时工作中,难免会遇到把XML作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历XML这块来测试,因为遍历XML是工作中使用最多的(至少我认为)。
预备
测试环境:
AMD毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server SP4、Sun JDK 1.4.1+Eclipse 2.1+Resin 2.1.8,在Debug模式下测试。
XML文件格式如下:
<?xml version="1.0" encoding="GB2312"?><RESULT><VALUE>
<NO>A1234</NO>
<ADDR>四川省XX县XX镇XX路X段XX号</ADDR></VALUE><VALUE>
<NO>B1234</NO>
<ADDR>四川省XX市XX乡XX村XX组</ADDR></VALUE></RESULT>
测试方法:
采用JSP端调用Bean(至于为什么采用JSP来调用,请参考:http://blog.csdn.net/rosen/archive/2004/10/15/138324.aspx),让每一种方案分别解析10K、100K、1000K、10000K的XML文件,计算其消耗时间(单位:毫秒)。
JSP文件:
<%@ page contentType="text/html; charset=gb2312" %><%@ page import="com.test.*"%>
<html><body><%String args[]={""};MyXMLReader.main(args);%></body></html>
测试
首先出场的是DOM(JAXP Crimson解析器)
DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。
另一方面,对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,比如SAX。
Bean文件:
package com.test;
import
java
.io.*;import
java
.util.*;import org.w3c.dom.*;import
java
x.xml.parsers.*;
public class MyXMLReader{
public static void main(String arge[]){
long lasting =System.currentTimeMillis();
try{
File f=new File("data_10k.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("VALUE");
for (int i=0;i<nl.getLength();i++){
System.out.print("车牌号码:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
System.out.println("车主地址:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
}
}catch(Exception e){
e.printStackTrace();
}
System.out.println("运行时间:"+(System.currentTimeMillis() - lasting)+"毫秒");}}
10k消耗时间:265 203 219 172
100k消耗时间:9172 9016 8891 9000
1000k消耗时间:691719 675407 708375 739656
[1]
[2]
[3]
[4]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
XMLHTTP---介绍
下一篇文章: 没有了
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
XMLHTTP---介绍
XML 实用工具类
Java & xml学习笔记 SAX…
用Java生成XML
XML配置文件的读取处理
Tomcat和MySQL的一个Server.…
用JDom轻松整合Java和XML
本源XML数据库Xindice 介绍 …
Tiger系列一:从XML中加载属…
保护XML文档的工具[Z]
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd