XML的讀寫

      XML是一種可擴展置標語言,又稱可擴展的編輯語言。XML文檔的定義格式有兩種:DTD和Schema格式,由於Schema是xml本身的,所以應用的非常普遍。xml的作用是文件的讀寫,所以在web開發中也得到了廣泛應用,作爲一種配置文件,充分發揮了它讀寫的功能。XML的解析方式有四種:DOM,SAX,JDOM,DOM4J。DOM是一種標準模型,也是W3C所推薦的。幾種解析方式各有優缺點,但是DOM4J幾種了前幾種的有點,在web開發中得到廣泛應用,本人也推薦掌握DOM4J。四種解析方式至少掌握一種即可,如果自己有時間精力最好全部掌握。下面是以DOM4J進行文件的讀寫實例:

 

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Iterator;

import java.util.List;

 

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

 

 

public class Dom4j {

 

   public static void main(String[] args) {

 File   file=new File("src/XML/gg.txt");

  try {

file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

  write(file);

  read(file);

}

 

//XML的寫入

 

 

private static void write(File  file) {

  // 創建document文檔

       Document   doc=DocumentHelper.createDocument();//得到document文件

       //添加元素

       Element e=doc.addElement("root");//添加根元素

       Element student=e.addElement("student");//添加子元素

       Element name=student.addElement("name");

       Element age=student.addElement("age");

 

       Element num=student.addElement("num");

       Element hight=student.addElement("hight");

 

       //給元素賦值

       student.addAttribute("id", "001");

       student.addAttribute("class", "201班");

       name.addText("lisi");

       age.addText("12");

 

 

 

       //把document保存到文件中

 

       //無格式化輸出

    /*    try {

FileWriter  fw=new FileWriter(file);

doc.write(fw);

fw.flush();

fw.close();

} catch (IOException e1) {

e1.printStackTrace();

}

*/

 

       //格式化輸出

       try {

FileWriter  fw=new FileWriter(file);

OutputFormat  format=OutputFormat.createPrettyPrint();

format.setEncoding("gb2312");

format.setIndent("  ");

XMLWriter   xw=new XMLWriter(fw,format);

xw.write(doc);

fw.flush();

fw.close();

} catch (IOException e1) {

e1.printStackTrace();

}

 

}

 

//XML的解析

 

private static void read(File file) {

SAXReader reader=new SAXReader();

try {

Document doc=reader.read(file);

Element root=doc.getRootElement();

List  list=root.elements("student");

for(int i=0;i<list.size();i++){

Element e=(Element)list.get(i);

System.out.println(e.attributeValue("id")+"   "+

e.attributeValue("class")+"  "+

e.elementText("name")+"   "+

e.elementText("age")+"    "+

e.elementText("num")+"   "+

e.elementText("hight"));

}

} catch (DocumentException e) {

e.printStackTrace();

}

}

 

}

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