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

創(chuàng)新互聯(lián)建站服務(wù)項目包括應(yīng)縣網(wǎng)站建設(shè)、應(yīng)縣網(wǎng)站制作、應(yīng)縣網(wǎng)頁制作以及應(yīng)縣網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,應(yīng)縣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到應(yīng)縣省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
DOM XML 解析方式是最容易理解的,它將XML文件作為Document對象讀取到內(nèi)存中,然后你可以輕松地遍歷不同的元素和節(jié)點對象。遍歷元素和節(jié)點不需要按照順序進(jìn)行。
DOM解析方式適合尺寸較小的XML文件,由于它將整個XML文件全部裝載到內(nèi)存中處理,所以不太適合處理尺寸較大的XML文件。對于較大的XML文件需要使用SAX解析。
在本教程中我們將對XML文件讀取和解析,并用它來創(chuàng)建對象。下面是我們將要解析的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>這個XML文件的內(nèi)容是一些員工信息列表,因此我們需要創(chuàng)建一個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()方法以便打印出員工對象的有用信息。接下來我們在程序中使用DOM解析方式讀取XML文件來獲取Employee 對象列表。
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
在實際情況下,我們在解析XML文件之前先要對XML文件的合法性進(jìn)行校驗,學(xué)習(xí)如何使用XSD校驗XML文件。
原文地址:http://www.php.cn/
DOM XML 解析方式是最容易理解的,它將XML文件作為Document對象讀取到內(nèi)存中,然后你可以輕松地遍歷不同的元素和節(jié)點對象。遍歷元素和節(jié)點不需要按照順序進(jìn)行。
DOM解析方式適合尺寸較小的XML文件,由于它將整個XML文件全部裝載到內(nèi)存中處理,所以不太適合處理尺寸較大的XML文件。對于較大的XML文件需要使用SAX解析。
在本教程中我們將對XML文件讀取和解析,并用它來創(chuàng)建對象。下面是我們將要解析的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>這個XML文件的內(nèi)容是一些員工信息列表,因此我們需要創(chuàng)建一個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()方法以便打印出員工對象的有用信息。接下來我們在程序中使用DOM解析方式讀取XML文件來獲取Employee 對象列表。
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
在實際情況下,我們在解析XML文件之前先要對XML文件的合法性進(jìn)行校驗,學(xué)習(xí)如何使用XSD校驗XML文件。
以上就是如何使用DOM方式對XML文件進(jìn)行解析,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章名稱:如何使用DOM方式對XML文件進(jìn)行解析
網(wǎng)站地址:http://chinadenli.net/article42/gspchc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、關(guān)鍵詞優(yōu)化、網(wǎng)站排名、搜索引擎優(yōu)化、網(wǎng)站營銷、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)