XML管理实例

前端之家收集整理的这篇文章主要介绍了XML管理实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

  1. public class main {
  2. public static void main(String[] args) {
  3. try{
  4. System.out.println("添加学生(a) 删除学生(b) 查找学生(c)");
  5. System.out.println("请输入操作类型");
  6. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  7. String type = br.readLine();
  8. switch(type)
  9. {
  10. case "a":
  11. System.out.println("请输入学生姓名:");
  12. String name = br.readLine();
  13. System.out.println("请输入学生姓准考证好:");
  14. String examid = br.readLine();
  15. System.out.println("请输入学生身份证号:");
  16. String idcard = br.readLine();
  17. System.out.println("请输入学生所在地:");
  18. String location = br.readLine();
  19. System.out.println("请输入学生成绩:");
  20. String grade = br.readLine();
  21. Student s = new Student();
  22. s.setExam(examid);
  23. s.setName(name);
  24. s.setGrade(Double.parseDouble(grade));
  25. s.setIdcard(idcard);
  26. s.setLocation(location);
  27. StudentDao dao = new StudentDao();
  28. dao.add(s);
  29. System.out.println("添加成功");
  30. break;
  31. case "b":
  32. System.out.println("请输入要删除的学生的姓名:");
  33. String nameB = br.readLine();
  34. try{
  35. StudentDao daoB = new StudentDao();
  36. daoB.delete(nameB);
  37. System.out.println("删除成功!");
  38. }catch(StudentNotExistException e)
  39. {
  40. System.out.println("学生名不存在");
  41. }
  42. break;
  43. case "c":
  44. Student sc =null;
  45. System.out.println("请输入要删除的学生的准考证号:");
  46. String examidC = br.readLine();
  47. StudentDao daoC = new StudentDao();
  48. if((sc = daoC.find(examidC))!=null)
  49. {
  50. System.out.println(sc.toString());
  51. }else{
  52. System.out.println("没有该学生");
  53. }
  54. break;
  55. default:
  56. System.out.println("不支持!");
  57. }
  58. }catch(Exception e){
  59. e.printStackTrace();
  60. System.out.println("出错!");
  61. }



学生类

  1. public class Student {
  2.  
  3. private String idcard;
  4. private String exam;
  5. private String name;
  6. private String location;
  7. private double grade;
  8. public String getIdcard() {
  9. return idcard;
  10. }
  11. public void setIdcard(String idcard) {
  12. this.idcard = idcard;
  13. }
  14. public String getExam() {
  15. return exam;
  16. }
  17. public void setExam(String exam) {
  18. this.exam = exam;
  19. }
  20. public String getName() {
  21. return name;
  22. }
  23. public void setName(String name) {
  24. this.name = name;
  25. }
  26. public String getLocation() {
  27. return location;
  28. }
  29. public void setLocation(String location) {
  30. this.location = location;
  31. }
  32. public double getGrade() {
  33. return grade;
  34. }
  35. public void setGrade(double grade) {
  36. this.grade = grade;
  37. }
  38. }


添加删除、查找 的方法

  1. public class StudentDao {
  2.  
  3. public void add(Student s){
  4. try {
  5. Document document = XmlUtils.getDocument();
  6. //创建出封装学生信息的标签
  7. Element student_tag = document.createElement("Student");
  8. student_tag.setAttribute("idcard",s.getIdcard());
  9. student_tag.setAttribute("examid",s.getExam());
  10. //创建用于封装学生姓名、所在地和成绩标签
  11. Element name = document.createElement("name");
  12. Element location = document.createElement("location");
  13. Element grade = document.createElement("grade");
  14. name.setTextContent(s.getName());
  15. location.setTextContent(s.getLocation());
  16. grade.setTextContent(s.getGrade()+"");
  17. student_tag.appendChild(name);
  18. student_tag.appendChild(location);
  19. student_tag.appendChild(grade);
  20. //把封装了信息学生标签挂到文档上
  21. document.getElementsByTagName("exam").item(0).appendChild(student_tag);
  22. //更新内存
  23. XmlUtils.write2Xml(document);
  24. } catch (Exception e) {
  25. // TODO Auto-generated catch block
  26. throw new RuntimeException(e);
  27. }
  28. }
  29.  
  30. public Student find(String examid){
  31. try {
  32. Document document = XmlUtils.getDocument();
  33. NodeList list = document.getElementsByTagName("Student");
  34. for(int i=0;i<list.getLength();i++)
  35. {
  36. Element student_tag = (Element) list.item(i);
  37. if(student_tag.getAttribute("examid").equals(examid)){
  38. //找到与examid向匹配的学生,new一个student对象封装这个学生的信息返回
  39. Student s = new Student();
  40. s.setExam(examid);
  41. s.setIdcard(student_tag.getAttribute("idcard"));
  42. s.setName(student_tag.getElementsByTagName("name").item(0).getTextContent());
  43. s.setLocation(student_tag.getElementsByTagName("location").item(0).getTextContent());
  44. s.setGrade(Double.parseDouble(student_tag.getElementsByTagName("grade").item(0).getTextContent()));
  45. return s;
  46. }
  47. }
  48. return null;
  49. } catch (Exception e) {
  50. // TODO Auto-generated catch block
  51. throw new RuntimeException(e);
  52. }
  53. }
  54. public void delete(String name) throws StudentNotExistException{
  55. try {
  56. Document document = XmlUtils.getDocument();
  57. NodeList list = document.getElementsByTagName("name");
  58. for(int i=0;i<list.getLength();i++){
  59. if(list.item(i).getTextContent().equals(name)){
  60. list.item(i).getParentNode().getParentNode().removeChild(list.item(i).getParentNode());
  61. XmlUtils.write2Xml(document);
  62. return;
  63. }
  64. }
  65. throw new StudentNotExistException(name+"不存在!");
  66. }catch(StudentNotExistException e){
  67. throw e;
  68. }
  69. catch (Exception e) {
  70. // TODO Auto-generated catch block
  71. throw new RuntimeException(e);
  72. }
  73. }
  74. }


xml文件格式

  1. <student examid="444" idcard="333">
  2. <name>***</name>
  3. <location>add</location>
  4. <grade>99</grade>
  5. </student>

猜你在找的XML相关文章