dom4j 生成 xml

来源:互联网 发布:东方国信java工资 编辑:程序博客网 时间:2024/06/05 06:57
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();
    }
     
  }
 
}
0 0
原创粉丝点击