java自动创建XML

来源:互联网 发布:php array_merge 编辑:程序博客网 时间:2024/06/06 09:14
  1. package test;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.PrintStream;
  5. import java.io.StringWriter;
  6. import javax.xml.parsers.DocumentBuilder;
  7. import javax.xml.parsers.DocumentBuilderFactory;
  8. import javax.xml.parsers.ParserConfigurationException;
  9. import org.w3c.dom.Document;
  10. import org.w3c.dom.Element;
  11. import com.sun.org.apache.xml.internal.serialize.OutputFormat;
  12. import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
  13. public class CreateXml {
  14.  /**
  15.   * @param args
  16.   * @throws ParserConfigurationException 
  17.   */
  18.  public static void main(String[] args) throws ParserConfigurationException {
  19.   //  
  20.   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  21.   // 
  22.   DocumentBuilder db = dbf.newDocumentBuilder();
  23.   Document doc = db.newDocument();
  24.   // 创建根元素 root 
  25.   Element root = doc.createElement("Student");
  26.   // 创建子元素 name 
  27.   Element item = doc.createElement("name");
  28.   // 创建子元素的文本 
  29.   item.appendChild(doc.createTextNode("wangyanping"));
  30.   // 为根元素添加节点 
  31.   root.appendChild(item);
  32.   // 创建age元素 
  33.   item = doc.createElement("age");
  34.   item.appendChild(doc.createTextNode("28"));
  35.   // 为根元素添加age节点 
  36.   root.appendChild(item);
  37.   // high 
  38.   item = doc.createElement("high");
  39.   item.appendChild(doc.createTextNode("180cm"));
  40.   root.appendChild(item);
  41.   
  42.   item = doc.createElement("score");
  43.   // 创建score的子元素lessons 
  44.   Element lessons = doc.createElement("lessons");
  45.   // 创建lessons的子元素lesson 
  46.   Element lesson = doc.createElement("java");
  47.   // 为子元素添加文本 
  48.   lesson.appendChild(doc.createTextNode("90"));
  49.   // 把子元素添加到父节点上 
  50.   lessons.appendChild(lesson);
  51.   // 把子元素添加到父节点上 
  52.   item.appendChild(lessons);
  53.   
  54.   lessons = doc.createElement("lessons");
  55.   lesson = doc.createElement("struts");
  56.   lesson.appendChild(doc.createTextNode("80"));
  57.   lessons.appendChild(lesson);
  58.   item.appendChild(lessons);
  59.   
  60.   lessons = doc.createElement("lessons");
  61.   lesson = doc.createElement("hibernet");
  62.   lesson.appendChild(doc.createTextNode("100"));
  63.   lessons.appendChild(lesson);
  64.   item.appendChild(lessons);
  65.   
  66.   root.appendChild(item);
  67.   // 为文档添加根节点 
  68.   doc.appendChild(root);
  69.   //  指定输出格式 
  70.   OutputFormat format = new OutputFormat(doc, "utf-8"true);
  71.   StringWriter stringOut = new StringWriter();
  72.   XMLSerializer serial = new XMLSerializer(stringOut,format);
  73.   // 将DOM数转化成字符串 
  74.   try {
  75.    serial.asDOMSerializer();
  76.    serial.serialize(doc.getDocumentElement());
  77.    // 创建文件输出流 
  78.    PrintStream ps = new PrintStream(new FileOutputStream("new.xml"));
  79.    // 输出xml 
  80.    ps.println(stringOut.toString());
  81.   } catch (IOException e) {
  82.    // TODO Auto-generated catch block 
  83.    e.printStackTrace();
  84.   }
  85.    
  86.  }
  87. }