XML—DOM解析案例

【题目】:基于XML文件实现一个简易的控制台程序,可以查看学生成绩,添加学生,删除学生等。

xml文件保存在src/com/dom/exercise文件夹下,它的格式如下:

            小明                    90            90            93                        小李                    78            86            98                        小王                    89            83            95            

登录后复制登录后复制

这个可以说是最简单的程序了,稍微复杂的一点是它要基于XML文件来实现,所以这里肯定要使用DOM解析,SAX不能用是因为SAX解析只能读取XML文件而不能更新。

1.首先编写StudentBean,如下:

package com.dom.exercise;public class Student {    private String id = null;        private String name = null;        private int score_java;        private int score_oracle;        private int score_vb;        public Student() {    }    public Student(String id, String name, int score_java, int score_oracle,                int score_vb) {            super();            this.id = id;            this.name = name;            this.score_java = score_java;            this.score_oracle = score_oracle;            this.score_vb = score_vb;    }    public String getId() {            return id;    }    public void setId(String id) {            this.id = id;    }    public String getName() {            return name;    }    public void setName(String name) {            this.name = name;    }    public int getScore_java() {            return score_java;    }    public void setScore_java(int score_java) {            this.score_java = score_java;    }    public int getScore_oracle() {            return score_oracle;    }    public void setScore_oracle(int score_oracle) {            this.score_oracle = score_oracle;    }    public int getScore_vb() {            return score_vb;    }    public void setScore_vb(int score_vb) {            this.score_vb = score_vb;    }}

登录后复制登录后复制

2.编写最关键的StudentService类,它对XML文档进行各种操作

import java.util.ArrayList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class StudentService {    private static Document document = null;        private static String path = "src/com/dom/exercise/student.xml";        static{            try{            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();            document = documentBuilder.parse(path);        }catch(Exception e){            System.out.println("初始化失败...");            e.printStackTrace();        }    }    /**     * 获取所有学生信息     * @return     */    public static ArrayList readAll(){        ArrayList array = new ArrayList();        NodeList students  = document.getElementsByTagName("student");                for (int i = 0; i 

3.编写主测试程序
实现简易界面:

package com.dom.exercise;import java.util.ArrayList;import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);                boolean flag = true;                while(flag){                    // 显示操作界面            System.console();            System.out.println("*********************操作界面*********************");            System.out.println("1.查询所有学生的成绩");            System.out.println("2.按照ID查询学生成绩 ");            System.out.println("3.添加一个学生");            System.out.println("4.按照ID删除一个学生");            System.out.println("0.退出系统");            System.out.println("************************************************");                        // 获取用户的操作            String operate = scanner.next();                        if ("1".equals(operate)) {                ArrayList students = StudentService.readAll();                System.out.println("所有的学生信息如下:");                System.out.println("NameIDJavaOracleVB");                                for (Student student : students) {                    System.out.println(student.getName() + "" + student.getId()                            + "" + student.getScore_java() + ""                            + student.getScore_oracle() + ""                            + student.getScore_vb());                }            }else if("2".equals(operate)){                System.out.println("请输入要查询的学生ID:");                String sid = scanner.next();                Student student = StudentService.getStudentById(sid);                System.out.println("学号为"+sid+"的学生的信息如下:");                System.out.println("NameIDJavaOracleVB");                System.out.println(student.getName() + "" + student.getId()                        + "" + student.getScore_java() + ""                        + student.getScore_oracle() + ""                        + student.getScore_vb());            }else if("3".equals(operate)){                System.out.println("请输入要添加的学生ID:");                String sid = scanner.next();                System.out.println("请输入要添加的学生姓名:");                String name = scanner.next();                System.out.println("请输入要添加的学生Java成绩:");                                int score_java = Integer.parseInt(scanner.next());                System.out.println("请输入要添加的学生Oracle成绩:");                                int score_oracle = Integer.parseInt(scanner.next());                System.out.println("请输入要添加的学生VB成绩:");                                int score_vb = Integer.parseInt(scanner.next());                Student student = new Student(sid, name, score_java, score_oracle, score_vb);                StudentService.addStudent(student);                System.out.println("添加成功!");            }else if("4".equals(operate)){                System.out.println("请输入要删除的学生的ID:");                String sid = scanner.next();                StudentService.deleteStudentById(sid);                System.out.println("删除成功!");            }            System.out.println("是否继续?(Y/N)");            flag = scanner.next().trim().toLowerCase().equals("y")?true:false;        }        scanner.close();    }}

登录后复制

4.运行结果
运行结果

问题的关键仍是DOM解析XML,对XML进行crud操作。

【题目】:基于XML文件实现一个简易的控制台程序,可以查看学生成绩,添加学生,删除学生等。

xml文件保存在src/com/dom/exercise文件夹下,它的格式如下:

            小明                    90            90            93                        小李                    78            86            98                        小王                    89            83            95            

登录后复制登录后复制

这个可以说是最简单的程序了,稍微复杂的一点是它要基于XML文件来实现,所以这里肯定要使用DOM解析,SAX不能用是因为SAX解析只能读取XML文件而不能更新。

1.首先编写StudentBean,如下:

package com.dom.exercise;public class Student {    private String id = null;        private String name = null;        private int score_java;        private int score_oracle;        private int score_vb;        public Student() {    }    public Student(String id, String name, int score_java, int score_oracle,                int score_vb) {            super();            this.id = id;            this.name = name;            this.score_java = score_java;            this.score_oracle = score_oracle;            this.score_vb = score_vb;    }    public String getId() {            return id;    }    public void setId(String id) {            this.id = id;    }    public String getName() {            return name;    }    public void setName(String name) {            this.name = name;    }    public int getScore_java() {            return score_java;    }    public void setScore_java(int score_java) {            this.score_java = score_java;    }    public int getScore_oracle() {            return score_oracle;    }    public void setScore_oracle(int score_oracle) {            this.score_oracle = score_oracle;    }    public int getScore_vb() {            return score_vb;    }    public void setScore_vb(int score_vb) {            this.score_vb = score_vb;    }}

登录后复制登录后复制

2.编写最关键的StudentService类,它对XML文档进行各种操作

import java.util.ArrayList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class StudentService {    private static Document document = null;        private static String path = "src/com/dom/exercise/student.xml";        static{            try{            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();            document = documentBuilder.parse(path);        }catch(Exception e){            System.out.println("初始化失败...");            e.printStackTrace();        }    }    /**     * 获取所有学生信息     * @return     */    public static ArrayList readAll(){        ArrayList array = new ArrayList();        NodeList students  = document.getElementsByTagName("student");                for (int i = 0; i 

3.编写主测试程序
实现简易界面:

package com.dom.exercise;import java.util.ArrayList;import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);                boolean flag = true;                while(flag){                    // 显示操作界面            System.console();            System.out.println("*********************操作界面*********************");            System.out.println("1.查询所有学生的成绩");            System.out.println("2.按照ID查询学生成绩 ");            System.out.println("3.添加一个学生");            System.out.println("4.按照ID删除一个学生");            System.out.println("0.退出系统");            System.out.println("************************************************");                        // 获取用户的操作            String operate = scanner.next();                        if ("1".equals(operate)) {                ArrayList students = StudentService.readAll();                System.out.println("所有的学生信息如下:");                System.out.println("NameIDJavaOracleVB");                                for (Student student : students) {                    System.out.println(student.getName() + "" + student.getId()                            + "" + student.getScore_java() + ""                            + student.getScore_oracle() + ""                            + student.getScore_vb());                }            }else if("2".equals(operate)){                System.out.println("请输入要查询的学生ID:");                String sid = scanner.next();                Student student = StudentService.getStudentById(sid);                System.out.println("学号为"+sid+"的学生的信息如下:");                System.out.println("NameIDJavaOracleVB");                System.out.println(student.getName() + "" + student.getId()                        + "" + student.getScore_java() + ""                        + student.getScore_oracle() + ""                        + student.getScore_vb());            }else if("3".equals(operate)){                System.out.println("请输入要添加的学生ID:");                String sid = scanner.next();                System.out.println("请输入要添加的学生姓名:");                String name = scanner.next();                System.out.println("请输入要添加的学生Java成绩:");                                int score_java = Integer.parseInt(scanner.next());                System.out.println("请输入要添加的学生Oracle成绩:");                                int score_oracle = Integer.parseInt(scanner.next());                System.out.println("请输入要添加的学生VB成绩:");                                int score_vb = Integer.parseInt(scanner.next());                Student student = new Student(sid, name, score_java, score_oracle, score_vb);                StudentService.addStudent(student);                System.out.println("添加成功!");            }else if("4".equals(operate)){                System.out.println("请输入要删除的学生的ID:");                String sid = scanner.next();                StudentService.deleteStudentById(sid);                System.out.println("删除成功!");            }            System.out.println("是否继续?(Y/N)");            flag = scanner.next().trim().toLowerCase().equals("y")?true:false;        }        scanner.close();    }}

登录后复制

4.运行结果
运行结果

问题的关键仍是DOM解析XML,对XML进行crud操作。

 以上就是XML—DOM解析案例的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2419992.html

(0)
上一篇 2025年3月3日 03:12:31
下一篇 2025年2月23日 11:08:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论