日期:2014-05-20 浏览次数:20956 次
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); } } }