Dom創建XML

http://blog.csdn.net/jinbogameboy/article/details/7183645

生成的類代碼:

package com.xh.xml;   

import java.io.FileOutputStream;   

import java.io.IOException;   

import org.jdom.Document;   

import org.jdom.Element;   

import org.jdom.JDOMException;   

import org.jdom.output.XMLOutputter;   

public class Java2XML {  

    public void BuildXMLDoc() throws IOException, JDOMException {   

       // 創建根節點 list;   

        Element root = new Element("list");   

       // 根節點添加到文檔中;   

        Document Doc = new Document(root);   

       // 此處 for 循環可替換成 遍歷 數據庫表的結果集操作;   

       for (int i = 0; i < 2; i++) {  

           // 創建節點 user;   

           Element elements = new Element("user");   

           // 給 user 節點添加屬性 id;   

           elements.setAttribute("id", "" + i);  

           // 給 user 節點添加子節點並賦值;   

           // new Element("name")中的 "name" 替換成表中相應字段,setText("xuehui")中 "xuehui 替換成表中記錄值;   

           elements.addContent(new Element("name").setText("xuehui"));  

           elements.addContent(new Element("age").setText("28"));  

           elements.addContent(new Element("sex").setText("Male"));  

           // 給父節點list添加user子節點;  

           root.addContent(elements);  

       }  

        XMLOutputter XMLOut = new XMLOutputter();  

       // 輸出 user.xml 文件;  

        XMLOut.output(Doc, new FileOutputStream("user.xml"));  

    } 

    public static void main(String[] args) {  

       try {  

           Java2XML j2x = new Java2XML();  

           System.out.println("生成 mxl 文件...");  

           j2x.BuildXMLDoc();  

       } catch (Exception e) {  

           e.printStackTrace();  

       }  

    }  

}  

生成的 user.xml  文件  

<?xml version="1.0" encoding="UTF-8"?>  

<list>  

    <user id="0">  

        <name>xuehui</name>  

        <age>28</age>  

        <sex>Male</sex>  

    </user>  

    <user id="1">  

        <name>xuehui</name>  

        <age>28</age>  

        <sex>Male</sex>  

    </user>  

</list>

生成XML時候處理縮進,對輸出格式進行美化

  只需要將上面生成XML時候的帶嗎修改成如下代碼: 

Format format = Format.getPrettyFormat();

XMLOutputter XMLOut = new XMLOutputter(format);

XMLOut.output(Doc, new FileOutputStream("user.xml"));

生成XML的時候,處理特殊字符

element.addContent(new CDATA("<xml> content"));

生成XML的時候,設置編碼

XMLOutputter XMLOut = new XMLOutputter();

XMLOut.setEncoding("gb2312");

XMLOut.output(Doc, new FileOutputStream("test1.xml"));


dom4j方法

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import java.io.*;


public class createXML_chinese {
    public createXML_chinese() {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }


    public void generateDocument(){
   //此API爲了生成一個xml文件

     Document document = DocumentHelper.createDocument();
     //使用 DocumentHelper 類創建一個文檔實例。DocumentHelper 是生成 XML 文檔節點的 dom4j API 工廠類

     Element catalogElement = document.addElement("catalog");
     //使用 addElement() 方法創建根元素 catalog。 addElement() 用於向 XML 文檔中增加元素

     catalogElement.addComment("An XML Catalog");
     //在 catalog 元素中使用 addComment() 方法添加註釋“An XML catalog”

     catalogElement.addProcessingInstruction("target","text");
     //在 catalog 元素中使用 addProcessingInstruction() 方法增加一個處理指令

     Element journalElement =  catalogElement.addElement("journal");
     //在 catalog 元素中使用 addElement() 方法增加 journal 元素


     journalElement.addAttribute("title", "XML Zone");
     journalElement.addAttribute("publisher", "IBM developerWorks");
     //使用 addAttribute() 方法向 journal 元素添加 title 和 publisher 屬性。


     Element articleElement=journalElement.addElement("文章");
     //向journal  元素中添加 article 元素

     articleElement.addAttribute("level", "Intermediate");
     articleElement.addAttribute("date", "December-2001");
      //爲 article 元素增加 level 和 date 屬性

     Element  titleElement=articleElement.addElement("title");
     //向 article 元素中增加 title 元素


     titleElement.setText("Java configuration with XML Schema");
     //使用 setText() 方法設置 article 元素的文本


     Element authorElement=articleElement.addElement("author");
     //在 article 元素中增加 author 元素


     Element  firstNameElement=authorElement.addElement("firstname");
     firstNameElement.setText("Marcello");
     //在 author 元素中增加 firstname 元素並設置該元素的文本

     Element lastNameElement=authorElement.addElement("lastname");
     lastNameElement.setText("Vitaletti");
     //在 author 元素中增加 lastname 元素並設置該元素的文本


     //document.addDocType("catalog", null,"file://c:/Dtds/catalog.dtd");
     //可以使用 addDocType() 方法添加文檔類型說明。
     //   這樣就向 XML 文檔中增加文檔類型說明:
     //<!DOCTYPE catalog SYSTEM "file://c:/Dtds/catalog.dtd">



      try{
       //   XMLWriter output = new XMLWriter(new FileWriter( new File("c:/test.xml") ));

       //通過如下改變代碼徹底解決中文輸入問題
       // XML 聲明 <?xml version="1.0" encoding="UTF-8"?> 自動添加到 XML 文檔中。
          org.dom4j.io.XMLWriter output = new org.dom4j.io.XMLWriter(new FileOutputStream("E:/JavaCodeCollection/java學習/test/test.xml"));



          output.write( document );
          output.close();
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章