1. 程式人生 > >【java】jdom生成xml檔案

【java】jdom生成xml檔案

上篇介紹了jdom解析xml檔案。這篇就介紹jdom生成xml。這樣就會對jdom操作xml有一個徹底的瞭解了。一個是正向解析,另一個是方向生成。

package com.rthb.test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

public class CreatXml {

	/**
	 * 建立人:zhanglx
	 * 建立時間:下午04:33:37
	 * 描述   :用jdom生成xml
	 */
	public static void BulidXml(){
		Element root=new Element("School");//建立根節點School節點
		Document document=new Document(root);//把根節點新增打文件中
		Element  elementclass=new Element("class");//建立根節點的子節點
		elementclass.setAttribute("name","張三");//給子節點新增name屬性
		elementclass.setAttribute("id","002");//給子節點新增id屬性
		Element element_subject=new Element("subject");//給子節點新增subject元素
		element_subject.addContent("數學");
		elementclass.addContent(element_subject);
		
		Element element_subject1=new Element("score");//給子節點新增score元素
		element_subject1.addContent("90");
		elementclass.addContent(element_subject1);
		
		Element element_subject2=new Element("card");//給子節點新增card元素
		element_subject2.addContent("024125");
		elementclass.addContent(element_subject2);
		
		
		root.addContent(elementclass);//把子節點新增到根節點中。
		XMLOutputter XMLOut = new XMLOutputter(FormatXML());  //生成xml檔案
		try {
			XMLOut.output(document, new FileOutputStream("src\\school.xml"));
		} catch (FileNotFoundException e) {
			System.out.println("生成xml檔案失敗!");
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("生成xml檔案失敗!");
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		BulidXml();
	}
	  public static Format FormatXML(){  
	        //格式化生成的xml檔案 
	        Format format = Format.getCompactFormat();  
	        format.setEncoding("utf-8");  
	        format.setIndent(" ");  
	        return format;  
	    }  
}

生成的xml檔案school.xml。(我是在專案src下生成,在main方法執行一遍後,要重新整理一下,要不然就不會出現了)
<?xml version="1.0" encoding="utf-8"?>
<School>
 <class name="張三" id="002">
  <subject>數學</subject>
  <score>90</score>
  <card>024125</card>
 </class>
</School>