XML入門教程(XML這樣學)

前言:“與其每天擔心未來,不如努力現在。別對自己喪失信心,成長的路上,只有奮鬥才能給你最大的安全感。”
你好,我是夢陽辰!下面和我一起學習XML吧!

在這裏插入圖片描述

01.XML概述

1.什麼是XML?
XML (eXtensible Markup Language)指可擴展標記語言,標準通用標記語言的子集,簡稱XML。是一種用於標記電子文件使其具有結構性的標記語言。

XML 指可擴展標記語言(EXtensible Markup Language)
XML 是一種標記語言,很類似 HTML
XML 的設計宗旨是傳輸數據,而非顯示數據
XML 標籤沒有被預定義。您需要自行定義標籤。
XML 被設計爲具有自我描述性。
XML 是 W3C 的推薦標準

xml是一種非常靈活的語言,沒有固定的標籤,所有的標籤都可以自定義。

2.XML的用途?
通常,xml被用於信息的記錄和傳遞,因此xml經常被用於充當配置文件。

3.XML 僅僅是純文本
XML 沒什麼特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。

不過,能夠讀懂 XML 的應用程序可以有針對性地處理 XML 的標籤。標籤的功能性意義依賴於應用程序的特性。

4.xml的格式
在這裏插入圖片描述

//1.聲明信息,用戶描述xml的版本和編碼方式
<?xml version="1.0" encoding="UTF-8?>
//2.根元素,有且僅有一個根元素
//3.xml大小寫敏感
//4.標籤成對,需要正確嵌套
//5.屬性只要使用雙引號
<book id="fa">
//註釋的語法跟HTML相同

5.XML 不會替代 HTML,理解這一點很重要。在大多數 web 應用程序中,XML 用於傳輸數據,而 HTML 用於格式化並顯示數據。
XML 無所不在。XML 是各種應用程序之間進行數據傳輸的最常用的工具,並且在信息存儲和描述領域變得越來越流行。
對 XML 最好的描述是:

XML 是獨立於軟件和硬件的信息傳輸工具。

6.XML 沒有預定義的標籤

在 HTML 中使用的標籤(以及 HTML 的結構)是預定義的。HTML 文檔只使用在 HTML 標準中定義過的標籤(比如 < p > 、< h1 > 等等)。

XML 允許創作者定義自己的標籤和自己的文檔結構。

練習:

<?xml version="1.0" encoding="UTF-8"?>
<scores>
	<student id="1">
		<name>MengYangChen</name>
		<course>xml</course>
		<score>99</score>
	</student>
		<name>XingKong</name>
		<course>xml</course>
		<score>99.9</score>
	<student id="2">
	</student>
</scores>

8.有效的XML文檔
7.1 首先必須是格式良好的。
7.2 使用DTD和XSD(XML Schema)定義約束。
在這裏插入圖片描述

02.DTD

1.什麼是DTD?
文檔類型定義(DTD)可定義合法的XML文檔構建模塊。它使用一系列合法的元素來定義文檔的結構。

DTD 可被成行地聲明於 XML 文檔中,也可作爲一個外部引用。
DTD(Document Type Defination )文檔類型定義。
DTD用於約束xml的文檔格式,保證xml是一個有效的xml。
2.DTD可以分爲兩種,內部DTD,外部DTD。

2.內部DTD的定義
假如 DTD 被包含在您的 XML 源文件中,它應當通過下面的語法包裝在一個 DOCTYPE 聲明中:

<!DOCTYPE 根元素 [元素聲明]>

數量詞
+: 表示出現1次或多次,至少一次。

?:表示出現0次或1次。

*: 表示出現任意次。

2.1.元素聲明語法

<!ELEMENT 元素名稱 (元素內容)>

2.2.屬性聲明語法
屬性類型:CDATA,表示字符數據(character data)
默認值:REQUIRED 屬性值是必需的
#IMPLIED 屬性不是必需的
#FIXED value 屬性值是固定的

<!ATTLIST 元素名稱 屬性名稱 屬性類型 默認值>
如:<!ATTLIST payment type CDATA "check">
<?xml version="1.0" encoding="UTF-8"?>
<!--聲明內部DTD-->
<!DOCTYPE scores[
<!ELEMENT scores (student)>
<!ELEMENT stuent(name,course,score)>
<!ATTLIST stuent id CDATA #IMPLIED>
<!ELEMENT  name (#PCDATA)>
]>
<scores>
	<student id="1">
		<name>MengYangChen</name>
		<course>xml</course>
		<score>99</score>
	</student>
		<name>XingKong</name>
		<course>xml</course>
		<score>99.9</score>
	<student id="2">
	</student>
</scores>

2.3 外部定義DTD
在xml中引入外部的DTD文件。

<!DOCTYPE scores SYSTEM "scores.dtd">

關於XSD
XML Schema是DTD的替代者。
不僅可以定義XML文檔的結構,還可以規範文檔的內容。

03.XML的解析

對xml文件進行操作,包括創建xml,對xml文件進行增刪改查操作。

3.1 常見的xml解析技術

DOM解析
官方提供的解析方式(sun)
基於xml樹解析。

SAX解析
是民間解析方式,基於事件的解析
適用於數據量較大的XML.

JDOM解析
開放源碼,比DOM更快,使用類

DOM4J解析
第三方,開源免費,是JDOM的升級版,使用接口

3.2 DOM4J解析xml
解析xml的入口,是需要先拿到一個Document對象。
讀取xml文件
1.導入dom4j.jar包
2.編寫程序
在這裏插入圖片描述
在這裏插入圖片描述

dom4j創建xml

1.通過DocumentHelper生成一個Document對象。
Document doc =DocumentHelper.createDocument();

2.添加根元素
Element root = doc.addElement(“books”);

3.爲根元素添加子元素
Element book =root.addElement(“book”);

4.爲book元素添加屬性(可以鏈式編程)
book.addAttribute(“id”,“bo1”);

5.爲book添加子元素
Element name book.addElement=book.addElement(“name”);

6.爲子元素添加文本
name.addText(“Think in Java”);

7.將doc輸出到xml文件中即可
Writer writer = new FileWriter(new File(“src/book.xml”);
doc.write(writer);

或者用格式良好的輸出(縮進)
OutputFormat format =OutputFormat.createPrettyPrint();

XMLWriter writer = new XMLWriter(new FileWriter(new File(“src/book.xml”);
8.關閉資源
writer.close();

我是夢陽辰,期待下次與你相遇!

關注公衆號【輕鬆玩編程】回覆關鍵字“電子書”,“計算機資源”,“Java從入門到進階”,”JavaScript教程“,“算法”,“Python學習資源”,“人工智能”等即可獲取學習資源。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章