dom4j的簡單實例

package dome;

import java.io.File;
import java.util.Iterator;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class TestDom {
 public static void main(String args[]){
  SAXReader sa = new SAXReader();
  Student stu = new Student();
  try {
   Document doc = sa.read(new File("c://student.xml"));//獲得需要解析的XML文檔
   Element root = doc.getRootElement();//得到根元素 students元素
   for(Iterator it = root.elementIterator();it.hasNext();){ //遍歷 根元素,獲得每個元素都是根元素下的第一層子元素
    Element ele = (Element) it.next();//拿出一個子元素
    Attribute ageAtt = ele.attribute("age");//看看有沒有age這個屬性
    if(ageAtt!=null){//判斷一下
     String age = ageAtt.getText();//如果有,先取值
     if(age.equals("")){//判斷是否爲空串
      stu.setAge("20");//是空串,默認賦值20
     }else{
      stu.setAge(age);//不是空串,該什麼值給什麼值
     }
    }else{
     stu.setAge("20");//如果沒又age這個屬性,默認賦值20
    }
    for(Iterator eleinner = ele.elementIterator();eleinner.hasNext();){//繼續遍歷子元素的子元素
     Element ele2 = (Element) eleinner.next();//得到下一級元素
     if(ele2.getName().equals("college")){//如果元素名字爲college的話
      stu.setCollege(ele2.getText());//先把值賦給對象
      Attribute leaAtt = ele2.attribute("leader");//然後看看這個元素有沒有leader這個屬性
      if(leaAtt!=null){//如果有這個屬性
       String leader = leaAtt.getValue();//先取值
       stu.setLeader(leader);//賦值這個值
       if(leader.equals("")){//如果這個值爲空串
        stu.setLeader("leader");//默認賦值leader
       }
      }else{//如果沒有這個屬性
       stu.setLeader("leader");//默認賦值leader
      }
     }else if(ele2.getName().equals("name")){//如果元素名爲name
      stu.setName(ele2.getText());//賦值
     }else if(ele2.getName().equals("telephone")){
      stu.setTelephone(ele2.getText());
     }else if(ele2.getName().equals("notes")){
      stu.setNotes(ele2.getText());
     }
    }
    System.out.println(stu.getName()+"/t"+stu.getAge()+"/t"+stu.getCollege()+"/t"+stu.getLeader()+"/t"+stu.getTelephone()+"/t"+stu.getNotes() );
   }
  } catch (DocumentException e) {
   e.printStackTrace();
  }
 }
}
------------------------------------

xml文件

 

<?xml version="1.0" encoding="gb2312"?>
<students>
    <student age="25"><!--如果沒有age屬性,默認的爲20-->
        <name>崔衛兵</name>
        <college>PC學院</college>
        <telephone>62354666</telephone>
        <notes>男,1982年生,碩士,現就讀於北京郵電大學</notes>
    </student>
    <student>
        <name>魯西西</name>
        <college leader="學院領導">PC學院</college><!--如果沒有leader屬性,默認的爲leader-->
        <telephone>62358888</telephone>
        <notes>男,1987年生,碩士,現就讀於中國農業大學</notes>
    </student>
    <student age="45">
        <name>皮皮魯</name>
        <college leader="">xxx學院</college>
        <telephone>66666666</telephone>
        <notes>注視中,註釋中</notes>
    </student>
    <student age="">
        <name>鄭淵潔</name>
        <college>yyyy學院</college>
        <telephone>88888888</telephone>
        <notes>注視中111,註釋中222</notes>
    </student>
</students>

------------------------------

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