日期:2014-05-20 浏览次数:21129 次
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
/**
* 查询,修改,删除文件指定中的数据,不用数据库 用xml做数据库
*/
public class Student {
/**
* 启动
*/
public static void main(String args[]) {
Student st = new Student();
// 查询
st.search("00002");
// 修改
st.modify("00003","转学了");
// 删除
st.delete("00004");
// 追加
st.add("00005" ,"高七","1","2010/05/06","xxxx","1","备注xxxx");
}
/**
* 查询
* @param studentId 学生Id(唯一)
*/
public void search(String studentId) {
try {
SAXBuilder sb = new SAXBuilder();// 建立构造器
Document doc = sb.build(new FileInputStream("a.xml"));// 读入指定文件
Element root = doc.getRootElement();// 获得根节点
List list = root.getChildren();// 将根节点下的所有子节点放入List中
// 循环根节点下的各子节点
for (int i = 0; i < list.size(); i++) {
Element item = (Element) list.get(i);// 取得节点实例
String id = item.getAttribute("ID").getValue();// 取得属性值
// 节点学生ID=待查找的Id
if (studentId.equals(id)) {
System.out.println("id-->" + id);
// 取得姓名节点值
String name = item.getChild("name").getText();
System.out.println("姓名-->" + name);
// 取得性别节点值
String sex = item.getChild("sex").getText();
System.out.println("性别-->" + sex);
// 取得出生年月节点值
String birthday = item.getChild("birthday").getText();
System.out.println("出生年月-->" + birthday);
// 找到后退出循环
return;
}
}
System.out.println("没有找到该学生.");
} catch (Exception e) {
System.out.println(e);
}
}
/**
* 修改
* @param studentId 学生Id(唯一)
* @param note 备注
*/
public void modify(String studentId, String note) {
try {
SAXBuilder sb = new SAXBuilder();// 建立构造器
Document doc = sb.build(new FileInputStream("a.xml"));// 读入指定文件
Element root = doc.getRootElement();// 获得根节点
List list = root.getChildren();// 将根节点下的所有子节点放入List中
// 循环根节点下的各子节点
for (int i = 0; i < list.size(); i++) {
Element item = (Element) list.get(i);// 取得节点实例
String id = item.getAttribute("ID").getValue();// 取得属性值
// 节点学生ID=待查找的Id
if (studentId.equals(id)) {
// 修改备注
item.getChild("note").setText(note);
// 找到后退出循环
break;
}
}
XMLOutputter XMLOut = new XMLOutputter();
// 输出a.xml文件;
XMLOut.output(doc, new FileOutputStream("a.xml"));
} catch (Exception e) {
System.out.println(e);
}
}
/**
* 删除
* @param studentId 学生Id(唯一)
*/
public void delete(String studentId) {
try {
SAXBuilder sb = new SAXBuilder();// 建立构造器
Document doc = sb.build(new FileInputStream("a.xml"));// 读入指定文件
Element root = doc.getRootElement();// 获得根节点
List list = root.getChildren();// 将根节点下的所有子节点放入List中
// 循环根节点下的各子节点
for (int i = 0; i < list.size(); i++) {
Element item = (Element) list.get(i);// 取得节点实例
String id = item.getAttribute("ID").getValue();// 取得属性值
// 节点学生ID=待查找的Id
if (studentId.equals(id)) {
item.detach();
// 找到后退出循环
break;
}
}
XMLOutputter XMLOut = new XMLOutputter();
// 输出a.xml文件;
XMLOut.output(doc, new FileOutputStream("a.xml"));
} catch (Exception e) {
System.out.println(e);
}
}
/**
* 追加
* @param ID 学生Id(唯一)
* @param name 姓名
* @param sex 性别
* @param birthday 生日
* @param address 住址
* @param delFlg 删除区分
* @param note 备注
*
*/
public void add(String ID,String name,String sex,String birthday,String address,String delFlg,String note) {
try {
SAXBuilder sb = new SAXBuilder();// 建立构造器
Document doc = sb.build(new FileInputStream("a.xml"));// 读入指定文件
Element root = doc.getRootElement();// 获得根节点
// 创建学生节点 student;
Element elements = new Element("student");
// 给学生节点添加属性 ID;
elements.setAttribute("ID", ID);
// 给 学生 节点添加子节点并赋值
elements.addContent(new Element("name").setText(name));//姓名
elements.addContent(new Element("sex").setText(sex));//性别
elements.addContent(new Element("birthday").setText(birthday));//出生日
elements.addContent(new Element("address").setText(address));//住址
elements.addContent(new Element("delFlg").setText(delFlg));//删除区分
elements.addContent(new Element("note").setText(note));//备注
// 给父节点添加学生子节点;
root.addContent(elements);
XMLOutputter XMLOut = new XMLOutputter();
// 输出a.xml文件;
XMLOut.output(doc, new FileOutputStream("a.xml"));
} catch (Exception e) {
System.out.println(e);
}
}
}