package cn.cz.parsexml;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.StringReader;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.commons.io.IOUtils;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.SAXException;
import cn.cz.parsexml.vo.Company;
public class TestPaser {
private SAXParserFactory factory = SAXParserFactory.newInstance();
private final static int testRound = 100000;
private String xml;
@Before
public void initTest() throws IOException{
xml = IOUtils.toString(TestPaser.class.getResourceAsStream("/company.xml"));
}
@Test
public void testFunction() throws Exception{
System.out.println("功能测试:");
Company company = testSAXPase();
System.out.println("======================SAXParser:");
System.out.println(company.toString());
company = testXPPPase();
System.out.println("======================XPPParser:");
System.out.println(company.toString());
company = testVTDPase();
System.out.println("======================VTDParser:");
System.out.println(company.toString());
}
@Test
public void testPerformance() throws Exception{
System.out.println("性能测试:");
//测试SAX的性能:
long start = System.currentTimeMillis();
for(int i=0;i<testRound;i++){
testSAXPase();
}
System.out.println("SAX:"+ (System.currentTimeMillis() - start) );
//测试XPP的性能
start = System.currentTimeMillis();
for(int i=0;i<testRound;i++){
testXPPPase();
}
System.out.println("XPP:"+ (System.currentTimeMillis() - start) );
//测试VTD的性能
start = System.currentTimeMillis();
for(int i=0;i<testRound;i++){
testVTDPase();
}
System.out.println("VTD:"+ (System.currentTimeMillis() - start) );
}
private Company testSAXPase() throws ParserConfigurationException, SAXException, IOException{
SAXParser parser = factory.newSAXParser();
CompanySAXHandler saxHandler = new CompanySAXHandler();
parser.parse(new ByteArrayInputStream(xml.getBytes("utf-8")), saxHandler);
Company company = saxHandler.getResult();
return company;
}
private Company testXPPPase() throws Exception{
Company company = CompanyXPPParser.parse(new StringReader(xml));
return company;
}
private Company testVTDPase() throws Exception{
Company company = CompanyVTDParser.parse(xml.getBytes("utf-8"));
return company;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
XML高效解析器对比测试(Java工程)
共21个文件
class:6个
java:6个
jar:4个
5星 · 超过95%的资源 需积分: 50 69 下载量 71 浏览量
2011-03-03
17:11:20
上传
评论 2
收藏 968KB ZIP 举报
温馨提示
本Java项目对SAX,XPP,VTD三种高效的XML解析技术进行了对比测试。如果你只想知道结果: 连续10,000XML解析(简单XML): SAX:16157 XPP:3875 VTD:2218 请将本项目解压后导入Eclipse,并使用Junit4运行。本资源也可作为SAX、XPP、VTD的简单DEM。
资源推荐
资源详情
资源评论
收起资源包目录
ParseXmlTest.zip (21个子文件)
ParseXmlTest
.project 388B
bin
cn
cz
parsexml
CompanyVTDParser.class 2KB
CompanyXPPParser.class 3KB
vo
Depart.class 1003B
Company.class 2KB
CompanySAXHandler.class 2KB
TestPaser.class 3KB
company.xml 315B
test
cn
cz
parsexml
TestPaser.java 3KB
.settings
org.eclipse.jdt.core.prefs 629B
src
cn
cz
parsexml
CompanyXPPParser.java 2KB
CompanySAXHandler.java 2KB
CompanyVTDParser.java 2KB
vo
Company.java 1KB
Depart.java 565B
company.xml 315B
.classpath 652B
lib
commons-io.jar 82KB
xpp3-1.1.3.4.C.jar 116KB
vtd-xml.jar 523KB
dom4j-1.6.1.jar 307KB
共 21 条
- 1
Model_CZ
- 粉丝: 223
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页