高效创建XML工具(WAX)

WAX是一个用于创建大型XML文档的高效工具。与其它XML操作类库(如JDOM)相比,它占用的内存比较少。创建XML所需要的代码也比较少。只关注创建功能,而没有读取/解析功能。整个类库只有12K左右。特别适合用于创建基于REST或SOAP Web Service的请求与响应信息。

http://java.ociweb.com/mark/programming/WAX.html

 

下面是使用WAX和使用Dom4j的代码对比

/**
	 * 使用WAX创建简单xml
	 */
	public static void createXMLbyWa(){
		long start = System.currentTimeMillis();
		WAX wax = new WAX("e:/waxy.xml",Version.V1_0);
		//生成根节点
		wax.start("InterBOSS");
		//生成子节点
		wax.child("OrigDomain", "BOSS");
		//生成包含子节点
		wax.start("Routing")
		   .child("RouteType", "00")
		   .child("RouteValue", "000");
		String temp = "";
		wax.start("SvcCont").cdata(temp);
		//结束,生成xml文件
		wax.close();
		long end = System.currentTimeMillis();
		System.out.println("waxy 运行时长 : "+(end-start));
	}

 

 

/**
	 * 使用DOM4J创建一个简单XML
	 * @throws IOException
	 */
	public static void createSampleXML()throws IOException {
		long start = System.currentTimeMillis();
		/**//* 创建Document */
		Document doc = DocumentHelper.createDocument();
		OutputFormat format = OutputFormat.createPrettyPrint();/**//* 美化格式的输出 */
		// OutputFormat format = OutputFormat.createCompactFormat();/*
		// 压缩格式的输出,节省空间 */
		format.setEncoding("utf-8");/**//* xml的编码 */
		Element rootNode = DocumentHelper.createElement("InterBOSS");
		doc.add(rootNode);
		rootNode.addElement("OrigDomain").
		addAttribute("type","varchar").
		addAttribute("length","50").
//		n1.attribute("length").setValue("50");
		addText("BOSS");
		
		rootNode.addElement("Routing")
		.addElement("RouteType").addText("00")
		.addElement("RouteValue").addText("000")
		.addElement("SvcCont").addCDATA(" ");
		XMLWriter writer = new XMLWriter(new FileWriter("e:/dom4j.xml"), format);
		writer.write(doc);
		writer.close();/**//* 必写无疑 */
		long end = System.currentTimeMillis();
		System.out.println("dom4j 运行时长 : "+(end-start));
	}

 

经测试,使用dom4j生成xml的平均时长时62毫秒,使用wax生成xml的平均时长时47毫秒

 

总结,WAX生成XML的代码更简单,如果你是只需要创建XML文件,无疑WAX是个很好的选择

 

你可能感兴趣的:(html,xml,Web,REST,SOAP)