成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何使用DOM方式對(duì)XML文件進(jìn)行解析-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)如何使用DOM方式對(duì)XML文件進(jìn)行解析,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)的建站公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)上1000家。

DOM XML 解析方式是最容易理解的,它將XML文件作為Document對(duì)象讀取到內(nèi)存中,然后你可以輕松地遍歷不同的元素和節(jié)點(diǎn)對(duì)象。遍歷元素和節(jié)點(diǎn)不需要按照順序進(jìn)行。
DOM解析方式適合尺寸較小的XML文件,由于它將整個(gè)XML文件全部裝載到內(nèi)存中處理,所以不太適合處理尺寸較大的XML文件。對(duì)于較大的XML文件需要使用SAX解析。
在本教程中我們將對(duì)XML文件讀取和解析,并用它來創(chuàng)建對(duì)象。下面是我們將要解析的XML文件。
employee.xml

<?xml version="1.0"?><Employees>
    <Employee>
        <name>Pankaj</name>
        <age>29</age>
        <role>Java Developer</role>
        <gender>Male</gender>
    </Employee>
    <Employee>
        <name>Lisa</name>
        <age>35</age>
        <role>CSS Developer</role>
        <gender>Female</gender>
    </Employee></Employees>

這個(gè)XML文件的內(nèi)容是一些員工信息列表,因此我們需要?jiǎng)?chuàng)建一個(gè)Employee類來表示員工,然后將XML文件信息讀取到程序中。
下面是Employee類的定義:

package com.journaldev.xml;public class Employee {
    private String name;    
    private String gender;    
    private int age;    
    private String role;    
    public String getName() {        
    return name;
    }    public void setName(String name) {        this.name = name;
    }    public String getGender() {        return gender;
    }    public void setGender(String gender) {        this.gender = gender;
    }    public int getAge() {        return age;
    }    public void setAge(int age) {        this.age = age;
    }    public String getRole() {        return role;
    }    public void setRole(String role) {        this.role = role;
    }    @Override
    public String toString() {        
    return "Employee:: Name=" + this.name + " Age=" + this.age + " Gender=" + this.gender +                
    " Role=" + this.role;
    }

}

需要注意的是這里我重寫了toString()方法以便打印出員工對(duì)象的有用信息。接下來我們?cè)诔绦蛑惺褂肈OM解析方式讀取XML文件來獲取Employee 對(duì)象列表。
XMLReaderDOM.java

package com.journaldev.xml;
import java.io.File;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;import org.w3c.dom.Element;
import org.w3c.dom.Node;import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;public class XMLReaderDOM {

    public static void main(String[] args) {
        String filePath = "employee.xml";
        File xmlFile = new File(filePath);
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder;
        try {
            dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(xmlFile);
            doc.getDocumentElement().normalize();
            System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
            NodeList nodeList = doc.getElementsByTagName("Employee");
            //now XML is loaded as Document in memory, lets convert it to Object List
            List<Employee> empList = new ArrayList<Employee>();
            for (int i = 0; i < nodeList.getLength(); i++) {
                empList.add(getEmployee(nodeList.item(i)));
            }
            //lets print Employee list information
            for (Employee emp : empList) {
                System.out.println(emp.toString());
            }
        } catch (SAXException | ParserConfigurationException | IOException e1) {
            e1.printStackTrace();
        }

    }


    private static Employee getEmployee(Node node) {
        //XMLReaderDOM domReader = new XMLReaderDOM();
        Employee emp = new Employee();
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            Element element = (Element) node;
            emp.setName(getTagValue("name", element));
            emp.setAge(Integer.parseInt(getTagValue("age", element)));
            emp.setGender(getTagValue("gender", element));
            emp.setRole(getTagValue("role", element));
        }

        return emp;
    }


    private static String getTagValue(String tag, Element element) {
        NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
        Node node = (Node) nodeList.item(0);
        return node.getNodeValue();
    }

}

程序輸出內(nèi)容如下:

Root element :EmployeesEmployee:: Name=Pankaj Age=29 Gender=Male 
Role=Java DeveloperEmployee:: Name=Lisa Age=35 Gender=Female Role=CSS Developer

在實(shí)際情況下,我們?cè)诮馕鯴ML文件之前先要對(duì)XML文件的合法性進(jìn)行校驗(yàn),學(xué)習(xí)如何使用XSD校驗(yàn)XML文件。

原文地址:http://www.php.cn/

DOM XML 解析方式是最容易理解的,它將XML文件作為Document對(duì)象讀取到內(nèi)存中,然后你可以輕松地遍歷不同的元素和節(jié)點(diǎn)對(duì)象。遍歷元素和節(jié)點(diǎn)不需要按照順序進(jìn)行。
DOM解析方式適合尺寸較小的XML文件,由于它將整個(gè)XML文件全部裝載到內(nèi)存中處理,所以不太適合處理尺寸較大的XML文件。對(duì)于較大的XML文件需要使用SAX解析。
在本教程中我們將對(duì)XML文件讀取和解析,并用它來創(chuàng)建對(duì)象。下面是我們將要解析的XML文件。
employee.xml

<?xml version="1.0"?><Employees>
    <Employee>
        <name>Pankaj</name>
        <age>29</age>
        <role>Java Developer</role>
        <gender>Male</gender>
    </Employee>
    <Employee>
        <name>Lisa</name>
        <age>35</age>
        <role>CSS Developer</role>
        <gender>Female</gender>
    </Employee></Employees>

這個(gè)XML文件的內(nèi)容是一些員工信息列表,因此我們需要?jiǎng)?chuàng)建一個(gè)Employee類來表示員工,然后將XML文件信息讀取到程序中。
下面是Employee類的定義:

package com.journaldev.xml;public class Employee {
    private String name;    
    private String gender;    
    private int age;    
    private String role;    
    public String getName() {        
    return name;
    }    public void setName(String name) {        
    this.name = name;
    }    public String getGender() {        
    return gender;
    }    public void setGender(String gender) {        
    this.gender = gender;
    }    public int getAge() {        
    return age;
    }    public void setAge(int age) {        
    this.age = age;
    }    public String getRole() {        
    return role;
    }    public void setRole(String role) {        
    this.role = role;
    }    @Override
    public String toString() {        
    return "Employee:: Name=" + this.name + " Age=" + this.age + " Gender=" + this.gender +                
    " Role=" + this.role;
    }

}

需要注意的是這里我重寫了toString()方法以便打印出員工對(duì)象的有用信息。接下來我們?cè)诔绦蛑惺褂肈OM解析方式讀取XML文件來獲取Employee 對(duì)象列表。
XMLReaderDOM.java

package com.journaldev.xml;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;import org.w3c.dom.Element;
import org.w3c.dom.Node;import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;public class XMLReaderDOM {

    public static void main(String[] args) {
        String filePath = "employee.xml";
        File xmlFile = new File(filePath);
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder;
        try {
            dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(xmlFile);
            doc.getDocumentElement().normalize();
            System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
            NodeList nodeList = doc.getElementsByTagName("Employee");
            //now XML is loaded as Document in memory, lets convert it to Object List
            List<Employee> empList = new ArrayList<Employee>();
            for (int i = 0; i < nodeList.getLength(); i++) {
                empList.add(getEmployee(nodeList.item(i)));
            }
            //lets print Employee list information
            for (Employee emp : empList) {
                System.out.println(emp.toString());
            }
        } catch (SAXException | ParserConfigurationException | IOException e1) {
            e1.printStackTrace();
        }

    }


    private static Employee getEmployee(Node node) {
        //XMLReaderDOM domReader = new XMLReaderDOM();
        Employee emp = new Employee();
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            Element element = (Element) node;
            emp.setName(getTagValue("name", element));
            emp.setAge(Integer.parseInt(getTagValue("age", element)));
            emp.setGender(getTagValue("gender", element));
            emp.setRole(getTagValue("role", element));
        }

        return emp;
    }


    private static String getTagValue(String tag, Element element) {
        NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
        Node node = (Node) nodeList.item(0);
        return node.getNodeValue();
    }

}

程序輸出內(nèi)容如下:

Root element :EmployeesEmployee:: Name=Pankaj Age=29 Gender=Male Role=Java DeveloperEmployee:: Name=Lisa Age=35 Gender=Female Role=CSS Developer

在實(shí)際情況下,我們?cè)诮馕鯴ML文件之前先要對(duì)XML文件的合法性進(jìn)行校驗(yàn),學(xué)習(xí)如何使用XSD校驗(yàn)XML文件。

以上就是如何使用DOM方式對(duì)XML文件進(jìn)行解析,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:如何使用DOM方式對(duì)XML文件進(jìn)行解析-創(chuàng)新互聯(lián)
瀏覽地址:http://jinyejixie.com/article34/djeope.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)動(dòng)態(tài)網(wǎng)站、做網(wǎng)站、域名注冊(cè)、ChatGPT、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
墨脱县| 桑日县| 广宁县| 芜湖县| 安龙县| 武乡县| 牡丹江市| 谢通门县| 新野县| 汉中市| 营口市| 台东市| 南阳市| 洪湖市| 耒阳市| 全椒县| 苍梧县| 云阳县| 南宁市| 双城市| 宝清县| 丰县| 乌拉特前旗| 平湖市| 得荣县| 内江市| 上犹县| 亳州市| 锡林郭勒盟| 尼玛县| 富锦市| 南岸区| 大名县| 丹寨县| 集贤县| 余干县| 会昌县| 东方市| 贵州省| 安新县| 南京市|