dom4j CURD

来源:互联网 发布:js创建一个数组 编辑:程序博客网 时间:2024/06/13 18:36



import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import cn.itcast.xml.example3.domain.Student;


public class StudentDao {
//根据编号更新学员信息
public void update(Student student) throws Exception {
Document document = getDocument();
String xpath = "//student[@id='"+student.getId()+"']";
Element element = (Element) document.selectSingleNode(xpath);
if(element!=null){
element.element("name").setText(student.getName());
element.element("age").setText(student.getAge());
write2xml(document);
}else{
System.out.println("查无此学员");
}


}
//根据编号显示学员信息
public void read(String id) throws Exception{
Document document = getDocument();
String xpath = "//student[@id='"+id+"']";
Element element = (Element) document.selectSingleNode(xpath);
if(element!=null){
System.out.println("编号:" + element.attributeValue("id"));
System.out.println("姓名:" + element.elementText("name"));
System.out.println("年龄:" + element.elementText("age"));
}else{
System.out.println("查无此学员");
}
}
//根据编号删除某位学员的信息
public void delete(String id) throws Exception{
Document document = getDocument();
String xpath = "//student[@id='"+id+"']";
Element element = (Element) document.selectSingleNode(xpath);
if(element!=null){
element.getParent().remove(element);
write2xml(document);
}else{
System.out.println("查无此学员");
}
}
//增加学员的信息
public boolean create(Student student) throws Exception{
boolean flag = false;
if(student!=null){
Document document = null;
try {
document = getDocument();
} catch (Exception e) {
//创建空XML文件
document = DocumentHelper.createDocument();
//创建<students>根元素
document.addElement("students");
}
Element rootElement = document.getRootElement();
Element studentElement = rootElement.addElement("student");
studentElement.addAttribute("id",student.getId());
studentElement.addElement("name").setText(student.getName());
studentElement.addElement("age").setText(student.getAge());
write2xml(document);
flag = true;
}
return flag;
}
//将内存中的Document写到硬盘
private void write2xml(Document document) throws Exception {
OutputFormat format = OutputFormat.createPrettyPrint();
OutputStream os = new FileOutputStream("src/cn/itcast/xml/example3/db/students.xml");
XMLWriter xmlWriter = new XMLWriter(os,format);
xmlWriter.write(document);
xmlWriter.close();
}
//取得Document对象
private Document getDocument() throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("src/cn/itcast/xml/example3/db/students.xml"));
return document;
}


}
0 0