在平时工作中,难免会遇到把 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> |
| <%@ page contenttype="text/html; charset=gb2312" %> <%@ page import="com.test.*"%> <html> <body> <% string args[]={""}; myxmlreader.main(args); %> </body> </html> |
| package com.test; import java.io.*; import java.util.*; import org.w3c.dom.*; import javax.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)+" 毫秒"); } } |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器