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();