日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
DOM解析XML的示例

小編給大家分享一下DOM解析XML的示例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都做網(wǎng)站、網(wǎng)站制作服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

基于XML文件實現(xiàn)一個簡易的控制臺程序,可以查看學(xué)生成績,添加學(xué)生,刪除學(xué)生等。

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


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

這個可以說是最簡單的程序了,稍微復(fù)雜的一點是它要基于XML文件來實現(xiàn),所以這里肯定要使用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.編寫最關(guān)鍵的StudentService類,它對XML文檔進(jìn)行各種操作

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();
        }
    }    /**
     * 獲取所有學(xué)生信息
     * @return
     */
    public static ArrayList readAll(){
        ArrayList array = new ArrayList();
        NodeList students  = document.getElementsByTagName("student");        
        for (int i = 0; i < students.getLength(); i++) {
            Element node_student = (Element)students.item(i);
            String id = node_student.getAttribute("sid");
            Node node_name = node_student.getElementsByTagName("name").item(0);
            String name = node_name.getTextContent();
            Element node_course = (Element)node_student.getElementsByTagName("course").item(0);
            Node course_java = node_course.getElementsByTagName("java").item(0);
            Node course_oracle = node_course.getElementsByTagName("oracle").item(0);
            Node course_vb = node_course.getElementsByTagName("vb").item(0);            
            int score_java = Integer.parseInt(course_java.getTextContent());            
            int score_oracle = Integer.parseInt(course_oracle.getTextContent());            
            int score_vb = Integer.parseInt(course_vb.getTextContent());

            Student student = new Student(id, name, score_java, score_oracle, score_vb);
            array.add(student);
        }        return array;
    }    /**
     * 根據(jù)ID獲取一個學(xué)生的信息
     * @param sid
     * @return
     */
    public static Student getStudentById(String sid){
        NodeList students  = document.getElementsByTagName("student");        
        for (int i = 0; i < students.getLength(); i++) {
            Element node_student = (Element)students.item(i);
            String id = node_student.getAttribute("sid");            
            if(!id.equals(sid)){                
            continue;
            }
            Node node_name = node_student.getElementsByTagName("name").item(0);
            String name = node_name.getTextContent();
            Element node_course = (Element)node_student.getElementsByTagName("course").item(0);
            Node course_java = node_course.getElementsByTagName("java").item(0);
            Node course_oracle = node_course.getElementsByTagName("oracle").item(0);
            Node course_vb = node_course.getElementsByTagName("vb").item(0);            
            int score_java = Integer.parseInt(course_java.getTextContent());            
            int score_oracle = Integer.parseInt(course_oracle.getTextContent());            
            int score_vb = Integer.parseInt(course_vb.getTextContent());

            Student student = new Student(id, name, score_java, score_oracle, score_vb);            
            return student;
        }        return null;
    }    /**
     * 添加學(xué)生
     * @param student
     */
    public static void addStudent(Student student){
        Element stu = document.createElement("student");
        stu.setAttribute("sid", student.getId());
        Element name = document.createElement("name");
        name.setTextContent(student.getName());
        Element course = document.createElement("course");
        Element score_java = document.createElement("java");
        Element score_oracle = document.createElement("oracle");
        Element score_vb = document.createElement("vb");
        score_java.setTextContent(String.valueOf(student.getScore_java()));
        score_oracle.setTextContent(String.valueOf(student.getScore_oracle()));
        score_vb.setTextContent(String.valueOf(student.getScore_vb()));

        course.appendChild(score_java);
        course.appendChild(score_oracle);
        course.appendChild(score_vb);
        stu.appendChild(name);
        stu.appendChild(course);
        document.getDocumentElement().appendChild(stu);
        update(document, path);
    }    /**
     * 根據(jù)ID刪除一個學(xué)生
     * @param sid
     */
    public static void deleteStudentById(String sid){
        NodeList students = document.getElementsByTagName("student");        
        for (int i = 0; i < students.getLength(); i++) {
            Element student = (Element)students.item(i);            
            if(student.getAttribute("sid").equals(sid)){
                student.getParentNode().removeChild(student);
            }
        }
        update(document,path);
    }    /**
     * 更新到文件
     * @param document
     * @param path
     */
    public static void update(Document document,String path){        try{
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            transformer.transform(new DOMSource(document), new StreamResult(new File(path)));
        }catch(Exception e){
            e.printStackTrace();
        }

    }
}

3.編寫主測試程序
實現(xiàn)簡易界面:

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("\t\t1.查詢所有學(xué)生的成績");
            System.out.println("\t\t2.按照ID查詢學(xué)生成績 ");
            System.out.println("\t\t3.添加一個學(xué)生");
            System.out.println("\t\t4.按照ID刪除一個學(xué)生");
            System.out.println("\t\t0.退出系統(tǒng)");
            System.out.println("************************************************");            
            // 獲取用戶的操作
            String operate = scanner.next();            
            if ("1".equals(operate)) {
                ArrayList students = StudentService.readAll();
                System.out.println("所有的學(xué)生信息如下:");
                System.out.println("Name\tID\tJava\tOracle\tVB");                
                for (Student student : students) {
                    System.out.println(student.getName() + "\t" + student.getId()
                            + "\t" + student.getScore_java() + "\t"
                            + student.getScore_oracle() + "\t"
                            + student.getScore_vb());
                }
            }else if("2".equals(operate)){
                System.out.println("請輸入要查詢的學(xué)生ID:");
                String sid = scanner.next();
                Student student = StudentService.getStudentById(sid);
                System.out.println("學(xué)號為"+sid+"的學(xué)生的信息如下:");
                System.out.println("Name\tID\tJava\tOracle\tVB");
                System.out.println(student.getName() + "\t" + student.getId()
                        + "\t" + student.getScore_java() + "\t"
                        + student.getScore_oracle() + "\t"
                        + student.getScore_vb());
            }else if("3".equals(operate)){
                System.out.println("請輸入要添加的學(xué)生ID:");
                String sid = scanner.next();
                System.out.println("請輸入要添加的學(xué)生姓名:");
                String name = scanner.next();
                System.out.println("請輸入要添加的學(xué)生Java成績:");                
                int score_java = Integer.parseInt(scanner.next());
                System.out.println("請輸入要添加的學(xué)生Oracle成績:");                
                int score_oracle = Integer.parseInt(scanner.next());
                System.out.println("請輸入要添加的學(xué)生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("請輸入要刪除的學(xué)生的ID:");
                String sid = scanner.next();
                StudentService.deleteStudentById(sid);
                System.out.println("刪除成功!");
            }
            System.out.println("是否繼續(xù)?(Y/N)");
            flag = scanner.next().trim().toLowerCase().equals("y")?true:false;
        }
        scanner.close();
    }
}

4.運行結(jié)果
DOM解析XML的示例


問題的關(guān)鍵仍是DOM解析XML,對XML進(jìn)行crud操作。

【題目】:基于XML文件實現(xiàn)一個簡易的控制臺程序,可以查看學(xué)生成績,添加學(xué)生,刪除學(xué)生等。

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


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

這個可以說是最簡單的程序了,稍微復(fù)雜的一點是它要基于XML文件來實現(xiàn),所以這里肯定要使用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.編寫最關(guān)鍵的StudentService類,它對XML文檔進(jìn)行各種操作

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();
        }
    }    /**
     * 獲取所有學(xué)生信息
     * @return
     */
    public static ArrayList readAll(){
        ArrayList array = new ArrayList();
        NodeList students  = document.getElementsByTagName("student");        
        for (int i = 0; i < students.getLength(); i++) {
            Element node_student = (Element)students.item(i);
            String id = node_student.getAttribute("sid");
            Node node_name = node_student.getElementsByTagName("name").item(0);
            String name = node_name.getTextContent();
            Element node_course = (Element)node_student.getElementsByTagName("course").item(0);
            Node course_java = node_course.getElementsByTagName("java").item(0);
            Node course_oracle = node_course.getElementsByTagName("oracle").item(0);
            Node course_vb = node_course.getElementsByTagName("vb").item(0);            
            int score_java = Integer.parseInt(course_java.getTextContent());            
            int score_oracle = Integer.parseInt(course_oracle.getTextContent());            
            int score_vb = Integer.parseInt(course_vb.getTextContent());

            Student student = new Student(id, name, score_java, score_oracle, score_vb);
            array.add(student);
        }        return array;
    }    /**
     * 根據(jù)ID獲取一個學(xué)生的信息
     * @param sid
     * @return
     */
    public static Student getStudentById(String sid){
        NodeList students  = document.getElementsByTagName("student");        
        for (int i = 0; i < students.getLength(); i++) {
            Element node_student = (Element)students.item(i);
            String id = node_student.getAttribute("sid");            
            if(!id.equals(sid)){                
            continue;
            }
            Node node_name = node_student.getElementsByTagName("name").item(0);
            String name = node_name.getTextContent();
            Element node_course = (Element)node_student.getElementsByTagName("course").item(0);
            Node course_java = node_course.getElementsByTagName("java").item(0);
            Node course_oracle = node_course.getElementsByTagName("oracle").item(0);
            Node course_vb = node_course.getElementsByTagName("vb").item(0);            
            int score_java = Integer.parseInt(course_java.getTextContent());            
            int score_oracle = Integer.parseInt(course_oracle.getTextContent());            
            int score_vb = Integer.parseInt(course_vb.getTextContent());

            
            Student student = new Student(id, name, score_java, score_oracle, score_vb);            
            return student;
        }        return null;
    }    /**
     * 添加學(xué)生
     * @param student
     */
    public static void addStudent(Student student){
        Element stu = document.createElement("student");
        stu.setAttribute("sid", student.getId());
        Element name = document.createElement("name");
        name.setTextContent(student.getName());
        Element course = document.createElement("course");
        Element score_java = document.createElement("java");
        Element score_oracle = document.createElement("oracle");
        Element score_vb = document.createElement("vb");
        score_java.setTextContent(String.valueOf(student.getScore_java()));
        score_oracle.setTextContent(String.valueOf(student.getScore_oracle()));
        score_vb.setTextContent(String.valueOf(student.getScore_vb()));

        course.appendChild(score_java);
        course.appendChild(score_oracle);
        course.appendChild(score_vb);
        stu.appendChild(name);
        stu.appendChild(course);
        document.getDocumentElement().appendChild(stu);
        update(document, path);
    }    /**
     * 根據(jù)ID刪除一個學(xué)生
     * @param sid
     */
    public static void deleteStudentById(String sid){
        NodeList students = document.getElementsByTagName("student");        
        for (int i = 0; i < students.getLength(); i++) {
            Element student = (Element)students.item(i);            
            if(student.getAttribute("sid").equals(sid)){
                student.getParentNode().removeChild(student);
            }
        }
        update(document,path);
    }    /**
     * 更新到文件
     * @param document
     * @param path
     */
    public static void update(Document document,String path){        
    try{
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            transformer.transform(new DOMSource(document), new StreamResult(new File(path)));
        }catch(Exception e){
            e.printStackTrace();
        }

    }
}

3.編寫主測試程序
實現(xiàn)簡易界面:

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("\t\t1.查詢所有學(xué)生的成績");
            System.out.println("\t\t2.按照ID查詢學(xué)生成績 ");
            System.out.println("\t\t3.添加一個學(xué)生");
            System.out.println("\t\t4.按照ID刪除一個學(xué)生");
            System.out.println("\t\t0.退出系統(tǒng)");
            System.out.println("************************************************");            
            // 獲取用戶的操作
            String operate = scanner.next();            
            if ("1".equals(operate)) {
                ArrayList students = StudentService.readAll();
                System.out.println("所有的學(xué)生信息如下:");
                System.out.println("Name\tID\tJava\tOracle\tVB");                
                for (Student student : students) {
                    System.out.println(student.getName() + "\t" + student.getId()
                            + "\t" + student.getScore_java() + "\t"
                            + student.getScore_oracle() + "\t"
                            + student.getScore_vb());
                }
            }else if("2".equals(operate)){
                System.out.println("請輸入要查詢的學(xué)生ID:");
                String sid = scanner.next();
                Student student = StudentService.getStudentById(sid);
                System.out.println("學(xué)號為"+sid+"的學(xué)生的信息如下:");
                System.out.println("Name\tID\tJava\tOracle\tVB");
                System.out.println(student.getName() + "\t" + student.getId()
                        + "\t" + student.getScore_java() + "\t"
                        + student.getScore_oracle() + "\t"
                        + student.getScore_vb());
            }else if("3".equals(operate)){
                System.out.println("請輸入要添加的學(xué)生ID:");
                String sid = scanner.next();
                System.out.println("請輸入要添加的學(xué)生姓名:");
                String name = scanner.next();
                System.out.println("請輸入要添加的學(xué)生Java成績:");                
                int score_java = Integer.parseInt(scanner.next());
                System.out.println("請輸入要添加的學(xué)生Oracle成績:");                
                int score_oracle = Integer.parseInt(scanner.next());
                System.out.println("請輸入要添加的學(xué)生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("請輸入要刪除的學(xué)生的ID:");
                String sid = scanner.next();
                StudentService.deleteStudentById(sid);
                System.out.println("刪除成功!");
            }
            System.out.println("是否繼續(xù)?(Y/N)");
            flag = scanner.next().trim().toLowerCase().equals("y")?true:false;
        }
        scanner.close();
    }
}

4.運行結(jié)果
DOM解析XML的示例


看完了這篇文章,相信你對“DOM解析XML的示例”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


網(wǎng)頁名稱:DOM解析XML的示例
標(biāo)題路徑:http://www.dlmjj.cn/article/ipdics.html