天天看点

DOM4J 例子

package zgw.com.javabean;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

import org.dom4j.*;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

public class OpXML {

 public Document dom;

 public int pageSize = 5;// 页面大小

 public int resultCount = 0;// 总共记录条数

 public int pageNum = 1;// 总共页面

 public Element root = null;

 public OpXML() {

  SAXReader read = new SAXReader();

  try {

   dom = read.read(new File("c://leavemessage.xml"));

  } catch (DocumentException e) {

   // TODO 自动生成 catch 块

   e.printStackTrace();

  }

  root = dom.getRootElement();

 }

 public int getResultCount() {

  int a = 0;

  for (Iterator it = root.elementIterator(); it.hasNext(); it.next()) {

   a++;

  }

  return this.resultCount = a;

 }

 public Collection getInfoById(int id) {

  Collection c = new ArrayList();

  for (Iterator it = root.elementIterator(); it.hasNext();) {

   Element el = (Element) it.next();

   if (el.elementText("id").equals(String.valueOf(id))) {

    lm l = new lm();

    l.setId(el.elementText("id"));

    l.setEmail(el.elementText("email"));

    l.setInfo(el.elementText("info"));

    l.setName(el.elementText("name"));

    l.setTitle(el.elementText("title"));

    l.setTel(el.elementText("tel"));

    l.setTime(el.elementText("time"));

    l.setImg(el.elementText("img"));

    for (Iterator i = el.elementIterator("reInfo"); i.hasNext();) {

     Element e = (Element) i.next();

     l.setPerson(e.elementText("person"));

     l.setReplay(e.elementText("replay"));

     l.setTotime(e.elementText("totime"));

    }

    c.add(l);

   }

  }

  return c;

 }

 public int getPageNum() {

  if (this.resultCount % this.pageSize == 0)

   this.pageNum = this.resultCount / this.pageSize;

  else

   this.pageNum = this.resultCount / this.pageSize + 1;

  return this.pageNum;

 }

 public int getId() {

  int aa = this.getResultCount();

  int a = 0, result = 0;

  ;

  for (Iterator it = root.elementIterator(); it.hasNext();) {

   Element el = (Element) it.next();

   a++;

   if (a == aa) {

    result = Integer.parseInt(el.elementText("id"));

   }

  }

  return result;

 }

 public Collection getAll(int CurrPage) {

  int b = 0, a = 0;

  Collection col = new ArrayList();

  for (Iterator it = root.elementIterator(); a < this.pageSize

    && it.hasNext();) {

   b++;

   Element el = (Element) it.next();

   if (b > CurrPage * this.pageSize) {

    a++;

    lm l = new lm();

    l.setId(el.elementText("id"));

    l.setEmail(el.elementText("email"));

    l.setInfo(el.elementText("info"));

    l.setName(el.elementText("name"));

    l.setTitle(el.elementText("title"));

    l.setTel(el.elementText("tel"));

    l.setTime(el.elementText("time"));

    l.setImg(el.elementText("img"));

    for (Iterator i = el.elementIterator("reInfo"); i.hasNext();) {

     Element e = (Element) i.next();

     l.setPerson(e.elementText("person"));

     l.setReplay(e.elementText("replay"));

     l.setTotime(e.elementText("totime"));

    }

    col.add(l);

   }

  }

  return col;

 }

 public Collection search(String str) {

  Collection c = new ArrayList();

  for (Iterator it = root.elementIterator(); it.hasNext();) {

   Element el = (Element) it.next();

   if (el.elementText("name").indexOf((str)) != -1) {

    lm l = new lm();

    l.setId(el.elementText("id"));

    l.setEmail(el.elementText("email"));

    l.setInfo(el.elementText("info"));

    l.setName(el.elementText("name"));

    l.setTitle(el.elementText("title"));

    l.setTel(el.elementText("tel"));

    l.setTime(el.elementText("time"));

    l.setImg(el.elementText("img"));

    for (Iterator i = el.elementIterator("reInfo"); i.hasNext();) {

     Element e = (Element) i.next();

     l.setPerson(e.elementText("person"));

     l.setReplay(e.elementText("replay"));

     l.setTotime(e.elementText("totime"));

    }

    c.add(l);

   }

  }

  return c;

 }

 public void deleById(int id) throws IOException {

  for (Iterator it = root.elementIterator(); it.hasNext();) {

   Element el = (Element) it.next();

   if (el.elementText("id").equals(String.valueOf(id))) {

    root.remove(el);

    OutputFormat format = OutputFormat.createPrettyPrint();

    format.setEncoding("gb2312");

    XMLWriter output = new XMLWriter(new FileWriter(new File(

      "c://leavemessage.xml")), format);

    output.write(dom);

    output.close();

   }

  }

 }

 public static void main(String a[]) throws DocumentException {

  OpXML o = new OpXML();

  try {

   o.deleById(3);

  } catch (IOException e) {

   // TODO 自动生成 catch 块

   e.printStackTrace();

  }

 }

}