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();
}
}
}