package com.bimoku.util.xml; import java.io.FileOutputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.apache.commons.collections.map.HashedMap; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; /** * 写xml * @author LPM * */ public class WriteXml { /** * 写数据到xml * * @param datas * @throws Exception */ public static void witeXml(@SuppressWarnings("rawtypes") Map map,String xmlFilePath) throws Exception { Document doc = DomHelper.createDomFJ(); doc.addComment("以utf-8的编码"); Element books = DomHelper.appendChile("books", doc); /* 格式化输出 */ OutputFormat format = OutputFormat.createPrettyPrint();// 紧缩 format.setEncoding("utf-8"); // 设置utf-8编码 Element book = DomHelper.appendChile("book", books); //构建树形结构 rescue(book, map); //输出 FileOutputStream fos = new FileOutputStream(xmlFilePath); XMLWriter writer=new XMLWriter(fos,format); //写结构 writer.write(doc); //关闭流 writer.close(); } /** * 迭代 * @param root * @param map */ private static void rescue(Element root,Map map){ Iterator iterator = map.keySet().iterator(); while (iterator.hasNext()) { String key = (String) iterator.next(); if(key.equals("read_statis") || key.equals("rating")){ //解析map Element el = DomHelper.appendChile(key, root); Map data = (Map) map.get(key); //迭代 rescue(el, data); }else{ String value = (String) map.get(key); DomHelper.appendChile(key, root).setText(value); } } } public static void main(String[] args) throws Exception { Map datas = new HashedMap(); datas.put("url", "aa"); datas.put("website", "bb"); datas.put("title", "cc"); datas.put("title_en", "dd"); datas.put("press", "ee"); datas.put("pages", "ff"); datas.put("date", "gg"); datas.put("isbn", "hh"); witeXml(datas, "d:/11.xml"); } }