利用Jdom创建xml文件放到服务器load文件夹下

首先创建一个UserBean对象

package com.Stu;

public class Stu {
	 private String id;
	 private String add;
	 private String name;
	 private String sex;
	 private int age;
	 public String getAdd() {
	  return add;
	 }
	 public void setAdd(String add) {
	  this.add = add;
	 }
	 public int getAge() {
	  return age;
	 }
	 public void setAge(int age) {
	  this.age = age;
	 }
	 public String getId() {
	  return id;
	 }
	 public void setId(String id) {
	  this.id = id;
	 }
	 public String getName() {
	  return name;
	 }
	 public void setName(String name) {
	  this.name = name;
	 }
	 public String getSex() {
	  return sex;
	 }
	 public void setSex(String sex) {
	  this.sex = sex;
	 }
	 
	 @Override
	 public String toString() {
	  return "id:"+this.id+"\tadd:"+this.add+"\tname:"+this.name+"\tsex:"+this.sex+"\tage:"+this.age;
	 }
	}
2.......导入jdom.jar架包


3............................读取并创建xml

package com.Stu; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;

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

  /**  * 此类功能:用于把程序中的数据保存到XML文件中  * @author  */ public class TestWriteXml {  

 /**   * 程序主入口方法   * @param args   */  public static void main(String[] args) {    

  //实例输出流    XMLOutputter out = new XMLOutputter();    //得到格式化对象    Format format = Format.getPrettyFormat();    //输出流应用格式化对象    out.setFormat(format);       //把XML写到硬盘上   try {       TestWriteXml path = new TestWriteXml();  System.out.println(path.getPath()+"/load/"+"stu.xml");       //使用XMLOutputter的output方法持久化一个名为“stu.xml”的磁盘文件    out.output(xmldoc(), new FileOutputStream(path.getPath()+"/load/"+"stu.xml"));   } catch (FileNotFoundException e) {    // TODO Auto-generated catch block    e.printStackTrace();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }  }        

   //创建xml文件  public static Document xmldoc(){

   //创建实例一个List集合,保存程序中的数据    List<Stu> list = new ArrayList<Stu>();      //调用setValue(list)方法往集合中添加数据    setValue(list);            //创建实例一个Document对象保存内存文档对象    Document document = new Document();      Map map = new HashMap();   map.put("type", "text/xsl");   map.put("href","products.xsl");   ProcessingInstruction pi = new ProcessingInstruction("xml-stylesheet",map);//处理指令     //将处理指令添加     document.addContent(pi);               /*            * 创建文档类型并添加到文档            */     DocType  type  = new DocType("taglib"); //文档类型     type.setSystemID("http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd");   //设为 system     //添加文档类型     document.addContent(type);    //创建一个名为"stusEleRoot"的根节点元素    Element stusEleRoot = new Element("stus");               //循环遍历集合中的数据,添加到根元素节点中    for (Stu stu : list) {     //创建第二子节点stu,保存每个学生的信息     Element eleStu = new Element("stu");       //添加名为"ID"的属性到stu节点中     eleStu.setAttribute("ID", stu.getId());       //创建名为"name"的子节点元素,并把STU对象的"name"属性值设置为节点元素的值,然后添加到“stu”学生节点下     Element eleName = new Element("name");     eleName.setText(stu.getName());     eleStu.addContent(eleName);       //创建名为"add"的子节点元素,并把STU对象的"add"属性值设置为节点元素的值,然后添加到“stu”学生节点下     Element eleAdd = new Element("add");     eleAdd.setText(stu.getAdd());     eleStu.addContent(eleAdd);       //创建名为"sex"的子节点元素,并把STU对象的"sex"属性值设置为节点元素的值,然后添加到“stu”学生节点下     Element eleSex = new Element("sex");     eleSex.setText(stu.getSex());     eleStu.addContent(eleSex);       //创建名为"age"的子节点元素,并把STU对象的"age"属性值设置为节点元素的值,然后添加到“stu”学生节点下     Element eleAge = new Element("age");     eleAge.setText(stu.getAge() + "");//转类型(javaBean中的stu.getAge()值为integer类型)     eleStu.addContent(eleAge);       //将“eleStu”元素作为子节点添加到“eleRoot”根节点下     stusEleRoot.addContent(eleStu);    }        //添加根节点到内存文档对象中    document.setRootElement(stusEleRoot);    return document;    }        /**   * 程序启动时,往集合中循环添加10个元素,以模拟程序中的数据   * @param list集合   */  private static void setValue(List<Stu> list) {   for (int i = 0; i < 10; i++) {    Stu stu = new Stu();    stu.setAdd("地址" + (i + 1));    stu.setAge((i + 21));    stu.setId("s" + (i + 1));    stu.setName("姓名" + (i + 1));    stu.setSex("男");    list.add(stu);   }  }    

 //获取工程的根路径  public  String getPath(){   String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();   String rootpath  = path.substring(0,path.indexOf("/WEB-INF/classes"));   return rootpath;  }   }

4..............................运行就OK了,很好理解




5....................另外给一种创建方式


package com.jdom;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.jdom.Attribute;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.ProcessingInstruction;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

public class TranXMl {
	public static void main(String[] args) throws IOException {

		//创建空白文档
		Document doc = new Document();
		Map map = new HashMap();
		map.put("type", "text/xsl");
		map.put("href","products.xsl");
		ProcessingInstruction pi = new ProcessingInstruction("xml-stylesheet",map);//处理指令 
		  //将处理指令添加
		  doc.addContent(pi);
		  
		        /*
		         * 创建文档类型并添加到文档
		         */
		  DocType  type  = new DocType("taglib"); //文档类型
		  type.setPublicID("http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd");   //设为 system
		  //添加文档类型
		  doc.addContent(type); 
		  
		  Element root = new Element("productsDetails"); //创建一个元素
		  doc.setRootElement(root); //将该元素做为根元素
		  
		  Element product = new Element("product");
		  root.addContent(product); //将product做为productsDetails的子元素
		  
		  Attribute  att = new Attribute("productID","0001"); //创建属性
		  product.setAttribute(att); //为product设置属性
		  
		  //为product创建子元素,并将其content分别设为100.00,red
		  product.addContent(new Element("rate").setText("100.00"));
		  product.addContent(new Element("color").setText("红色"));
		  
		  /*
		   * 格式化输出
		   */
		  XMLOutputter outp = new XMLOutputter();//用于输出jdom 文档
		  Format format=Format.getPrettyFormat(); //格式化文档
		  format.setEncoding("utf-8"); //由于默认的编码是utf-8,中文将显示为乱码,所以设为gbk
		  outp.setFormat(format);
		  outp.output(doc,System.out); //输出文档
		
	}

}

6..........................直接运行就可以了




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