XML管理实例

来源:互联网 发布:纯种狗的悲哀知乎 编辑:程序博客网 时间:2024/05/16 19:37

XML中添加、删除、查找学生对象

public class main {public static void main(String[] args) {try{System.out.println("添加学生(a)   删除学生(b)   查找学生(c)");System.out.println("请输入操作类型");BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String type = br.readLine();switch(type){case "a":System.out.println("请输入学生姓名:");String name = br.readLine();System.out.println("请输入学生姓准考证好:");String examid = br.readLine();System.out.println("请输入学生身份证号:");String idcard = br.readLine();System.out.println("请输入学生所在地:");String location = br.readLine();System.out.println("请输入学生成绩:");String grade = br.readLine();Student s = new Student();s.setExam(examid);s.setName(name);s.setGrade(Double.parseDouble(grade));s.setIdcard(idcard);s.setLocation(location);StudentDao dao = new StudentDao();dao.add(s);System.out.println("添加成功");break;case "b":System.out.println("请输入要删除的学生的姓名:");String nameB = br.readLine();try{StudentDao daoB = new StudentDao();daoB.delete(nameB);System.out.println("删除成功!");}catch(StudentNotExistException e){System.out.println("学生名不存在");}break;case "c":Student sc =null;System.out.println("请输入要删除的学生的准考证号:");String examidC = br.readLine();StudentDao daoC = new StudentDao();if((sc = daoC.find(examidC))!=null){System.out.println(sc.toString());}else{System.out.println("没有该学生");}break;default:System.out.println("不支持!");}}catch(Exception e){e.printStackTrace();System.out.println("出错!");}



学生类

public class Student {private String idcard;private String exam;private String name;private String location;private double grade;public String getIdcard() {return idcard;}public void setIdcard(String idcard) {this.idcard = idcard;}public String getExam() {return exam;}public void setExam(String exam) {this.exam = exam;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getLocation() {return location;}public void setLocation(String location) {this.location = location;}public double getGrade() {return grade;}public void setGrade(double grade) {this.grade = grade;}}


添加、删除、查找 的方法类

public class StudentDao {public void add(Student s){try {Document document = XmlUtils.getDocument();//创建出封装学生信息的标签Element student_tag = document.createElement("Student");student_tag.setAttribute("idcard", s.getIdcard());student_tag.setAttribute("examid", s.getExam());//创建用于封装学生姓名、所在地和成绩标签Element name = document.createElement("name");Element location = document.createElement("location");Element grade = document.createElement("grade");name.setTextContent(s.getName());location.setTextContent(s.getLocation());grade.setTextContent(s.getGrade()+"");student_tag.appendChild(name);student_tag.appendChild(location);student_tag.appendChild(grade);//把封装了信息学生标签挂到文档上document.getElementsByTagName("exam").item(0).appendChild(student_tag);//更新内存XmlUtils.write2Xml(document);} catch (Exception e) {// TODO Auto-generated catch blockthrow new RuntimeException(e);}}public Student find(String examid){try {Document document = XmlUtils.getDocument();NodeList list = document.getElementsByTagName("Student");for(int i=0;i<list.getLength();i++){Element student_tag = (Element) list.item(i);if(student_tag.getAttribute("examid").equals(examid)){//找到与examid向匹配的学生,new一个student对象封装这个学生的信息返回Student s = new Student();s.setExam(examid);s.setIdcard(student_tag.getAttribute("idcard"));s.setName(student_tag.getElementsByTagName("name").item(0).getTextContent());s.setLocation(student_tag.getElementsByTagName("location").item(0).getTextContent());s.setGrade(Double.parseDouble(student_tag.getElementsByTagName("grade").item(0).getTextContent()));return s;}}return null;} catch (Exception e) {// TODO Auto-generated catch blockthrow new RuntimeException(e);}}public void delete(String name) throws StudentNotExistException{try {Document document = XmlUtils.getDocument();NodeList list = document.getElementsByTagName("name");for(int i=0;i<list.getLength();i++){if(list.item(i).getTextContent().equals(name)){list.item(i).getParentNode().getParentNode().removeChild(list.item(i).getParentNode());XmlUtils.write2Xml(document);return;}}throw new StudentNotExistException(name+"不存在!");}catch(StudentNotExistException e){throw e;}catch (Exception e) {// TODO Auto-generated catch blockthrow new RuntimeException(e);}}}


xml文件格式

<student examid="444" idcard="333"><name>***</name><location>add</location><grade>99</grade></student>


0 0
原创粉丝点击