本文實例講述了java生成XML的方法。分享給大家供大家參考,具體如下:
下拉框的生成,我是通過javascript讀取xml文件生成的。Xml文件是根據數據庫生成的。Xml文件只相當于頁面到數據庫的一道緩存。這樣利于性能。生成xml文件又是一件繁瑣的事情。只好交給機器去做了。真正的情景是程序定期自動或人為手動觸發程序生成xml。今天我單獨把xml文件生成的功能剝離出來寫了一個小程序。
具體的實現是,使用jxl.jar讀取(我承認我很喜歡使用Execel寫配置)的SQL語句。SQL要指明哪些是名稱、哪些是代碼、哪些是父級代碼。Mybatis查詢數據,拼裝報文寫入文件。這次寫了一個jar包程序。運行前請自備jre。
核心代碼:XmlCreateService.java
package com.fitweber.service;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.fitweber.util.CommonUtils;import com.fitweber.util.ExecelUtils;/** * <pre> * XML文件生成器 * </pre> * @author wheatmark hajima11@163.com * @version 1.00.00 * <pre> * 修改記錄 * 修改后版本:  修改人: 修改日期:  修改內容: * </pre> */public class XmlCreateService {@SuppressWarnings({ "rawtypes", "unused", "unchecked" })public static void main(String[] argc){String resource = "META-INF/conf/mybatis-config.xml";String root = "";InputStream inputStream;try {//拿到數據庫連接inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession session = sqlSessionFactory.openSession();//拿到查詢參數List requestList = ExecelUtils.readExecelSimple("xmlmaker.xls");//定義變量int i,j,listSize;String filename,sqlstament,temp;;HashMap requestMap = new HashMap();Map map;StringBuffer buf = new StringBuffer();for(Object l:requestList){List list = (List)l;listSize = list.size();filename =(String)list.get(1);sqlstament =(String)list.get(2);requestMap.put("sql", sqlstament);List result = session.selectList("com.fitweber.dao.XmlCreateDao.xmlDataQuery",requestMap);for(Object r:result){buf.append("<option>");map=(Map)r;temp = (String) map.get("DM");if(temp!=null){buf.append("<dm>"+temp+"</dm>");}temp = (String) map.get("MC");if(temp!=null){buf.append("<mc>"+temp+"</mc>");}temp = (String) map.get("PC");if(temp!=null){buf.append("<pc>"+temp+"</pc>");}temp = (String) map.get("ITEM");if(temp!=null){buf.append("<item>"+temp+"</item>");}buf.append("</option>");}CommonUtils.saveFile(null, (System.getProperty("user.dir")+"http://xml//").replace("http://", "/")+filename, ("<?xml version=/"1.0/" encoding=/"utf-8/" ?><root><select>"+buf.toString()+"</select></root>"),false);buf.setLength(0);}session.close();} catch (IOException e) {e.printStackTrace();}}}完整的源碼在github維護,地址:https://github.com/ladykiller/xmlmaker。
完整實例代碼點擊此處本站下載。
PS:這里再為大家提供幾款關于xml操作的在線工具供大家參考使用:
在線XML/JSON互相轉換工具:
http://tools.VeVB.COm/code/xmljson
在線格式化XML/在線壓縮XML:
http://tools.VeVB.COm/code/xmlformat
XML在線壓縮/格式化工具:
http://tools.VeVB.COm/code/xml_format_compress
XML代碼在線格式化美化工具:
http://tools.VeVB.COm/code/xmlcodeformat
希望本文所述對大家java程序設計有所幫助。
新聞熱點
疑難解答