JAVA中XML講解(應用案例)
文章目錄

一.XML文件的概述
(1)什么是XML
(2)XML 與 HTML 的主要差異
(3)XML語法
(4)XML 命名規則
(5)XML作用
(6)XML基本結構
二.XML解析
(1)解析方式
(2)DOM4J相關類
一.XML文件的概述
(1)什么是XML
XML 指可擴展標記語言 所謂的可擴展標記語言,簡單說就是指xml文件中的標簽可以任意
定義。
XML 指可擴展標記語言(EXtensible Markup Language)
XML 是一種標記語言,很類似 HTML
XML 的設計宗旨是傳輸數據,而非顯示數據
XML 標簽沒有被預定義。您需要自行定義標簽。
XML 被設計為具有自我描述性。
XML 是 W3C 的推薦標準
(2)XML 與 HTML 的主要差異
XML 不是 HTML 的替代。
XML 和 HTML 為不同的目的而設計:
XML 被設計為傳輸和存儲數據,其焦點是數據的內容。
HTML 被設計用來顯示數據,其焦點是數據的外觀。
HTML 旨在顯示信息,而 XML 旨在傳輸信息。
(3)XML語法
XML 標簽對大小寫敏感
XML 元素都須有關閉標簽
XML 文檔必須有根元素
XML 的屬性值須加引號
(4)XML 命名規則
XML 元素必須遵循以下命名規則:
名稱可以含字母、數字以及其他的字符
名稱不能以數字或者標點符號開始
名稱不能以字符 “xml”(或者 XML、Xml)開始
名稱不能包含空格
(5)XML作用
XML用來在程序間傳輸數據
XML可用來存儲數據(框架的配置信息)
(6)XML基本結構
文檔版本聲明及編碼
1
樹形結構:所有標簽必須包含在一對根標簽中
整個文檔是一個document對象
節點
①文檔中的某個標簽及其包含的內容稱為一個節點(標簽節點 element)
②標簽的某個屬性也是一個節點(屬性節點 attribute)
③文檔中的一個文本也是一個節點(文本節點 Text)
二.XML解析
(1)解析方式
所謂的xml解析就是對xml文件進行讀寫操作。
Xml解析方式分為兩種:
①dom方式(document object model)
即文檔對象模型,它是w3c組織推薦的解析xml的一種方式。
②sax方式(simple api for xml)
不是官方標準,它是xml 社區事實上的標準,幾乎所有的xml解析器都支持它
dom與sax解析方式,它只一種理論,沒有具體API.
dom與sax解析方式區別
dom:
dom解析方式它是將整個xml文件載入內存,以樹型結構來存儲
dom支持回寫 可以對xml文件中內容進行crud操作
如果文件內容比較大,不建議使用dom解析。
Sax
相比dom,sax是一種更為輕量級解決方案
采用串行讀取方式,逐行讀取,讀取一行解析一行。
編程比較復雜
sax只能讀取,不能對xml進行修改。
第三方xml解析包
Jaxp(sun標準)
Jdom:專注于寫操作(Java對象–>XML文檔)
Dom4j:專注于讀操作(XML文檔–>Java對象)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
根據xml文件創建對應的類
public class Dog { private int id; private String name; private String type; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } @Override public String toString() { return "Dog{" + "id=" + id + ", name='" + name + '\'' + ", type='" + type + '\'' + '}'; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SAXReader Dom4J的讀取文件的類
代碼實現xml解析
public class Dom4j_Case { public static void main(String[] args) throws Exception { //創建xml讀取對象 SAXReader reader=new SAXReader(); //讀取要解析的xml文件 Document document=reader.read(new FileInputStream("xml/dogs.xml")); //獲取根節點 Element root=document.getRootElement(); //獲取所有的直接子標簽 List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(2)DOM4J相關類
SAXReader 此類用于加載XML文檔
構造器:無參構造器
方法: public Document read( String/File…);
SAXReader reader = new SAXReader(); Document doc = reader.read(xmlFileName);
1
2
Document接口
獲取根元素: public Element getRootElement();
//通過Document對象調用getRootElement方法獲取根元素 Element root = doc.getRootElement();
1
2
Element接口:表示xml文檔中的某個元素
//1.獲取當前元素的所有屬性 List
1
2
3
4
5
6
7
8
Attribute接口:表示xml文件中元素的屬性
attr.getName();
attr.getValue();
List
1
2
3
4
5
6
7
8
9
The best investment is in yourself.
2020.03.20 來自辰兮的第33篇博客
Java XML
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。