import java.io.*; import org.dom4j.*; import org.dom4j.io.*; /** * 利用DOM4J写出xml文件 * */ public class WriteBookDemo { static String [][] data = { {"1001","科幻","哈利波特","罗琳","60","2005","en"}, {"1002","Web","Spring","Bruce","54","2008","en" }, {"1003","武侠","笑傲江湖","金庸","70","1970","zh" }, {"1004","武侠","小李飞刀","古龙","45","1965","zh" } }; /** * @param args */ public static void main(String[] args) { writeBook("mybook.xml"); } /** * 把书的数据生成到指定名字的xml文件中 * @param filename 要生成的xml文件名 */ public static void writeBook(String filename){ //1. 构造空的Document Document doc = DocumentHelper.createDocument(); //2. 构造根元素 Element rootElmt = doc.addElement("booklist"); //3. 递归构造子元素 for(String[] book : data){ Element bookElmt = rootElmt.addElement("book"); //book元素增加属性 bookElmt.addAttribute("isbn", book[0]); bookElmt.addAttribute("catalog", book[1]); //book元素增加四个子元素 Element nameElmt = bookElmt.addElement("name"); nameElmt.addAttribute("lang", book[6]); //name元素设置数据 nameElmt.setText(book[2]); Element authorElmt = bookElmt.addElement("author"); authorElmt.setText(book[3]); Element priceElmt = bookElmt.addElement("price"); priceElmt.setText(book[4]); Element yearElmt = bookElmt.addElement("year"); yearElmt.setText(book[5]); } //4. 输出 outputXml(doc, filename); } /** * 将doc写出到filename中 * @param doc 文档对象 * @param filename 要输出的xml文件名 */ public static void outputXml(Document doc, String filename) { try { //定义输出流的目的地 FileWriter fw = new FileWriter(filename); //定义输出格式和字符集 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GBK"); //定义用于输出xml文件的XMLWriter对象 XMLWriter xmlWriter = new XMLWriter(fw, format); xmlWriter.write(doc);//***** xmlWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }