XML入門(mén)教程(XML這樣學(xué))

前言:“與其每天擔(dān)心未來(lái),不如努力現(xiàn)在。別對(duì)自己?jiǎn)适判模砷L(zhǎng)的路上,只有奮斗才能給你最大的安全感?!?br>你好,我是夢(mèng)陽(yáng)辰!下面和我一起學(xué)習(xí)XML吧!

01.XML概述

1.什么是XML?
XML (eXtensible Markup Language)指可擴(kuò)展標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集,簡(jiǎn)稱XML。是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。

XML 指可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language)
XML 是一種標(biāo)記語(yǔ)言,很類似 HTML
XML 的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù)
XML 標(biāo)簽沒(méi)有被預(yù)定義。您需要自行定義標(biāo)簽。
XML 被設(shè)計(jì)為具有自我描述性。
XML 是 W3C 的推薦標(biāo)準(zhǔn)

xml是一種非常靈活的語(yǔ)言,沒(méi)有固定的標(biāo)簽,所有的標(biāo)簽都可以自定義。

2.XML的用途?
通常,xml被用于信息的記錄和傳遞,因此xml經(jīng)常被用于充當(dāng)配置文件。

3.XML 僅僅是純文本
XML 沒(méi)什么特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。

不過(guò),能夠讀懂 XML 的應(yīng)用程序可以有針對(duì)性地處理 XML 的標(biāo)簽。標(biāo)簽的功能性意義依賴于應(yīng)用程序的特性。

//1.聲明信息,用戶描述xml的版本和編碼方式
<?xml version="1.0" encoding="UTF-8?>
//2.根元素,有且僅有一個(gè)根元素
//3.xml大小寫(xiě)敏感
//4.標(biāo)簽成對(duì),需要正確嵌套
//5.屬性只要使用雙引號(hào)
<book id="fa">
//注釋的語(yǔ)法跟HTML相同

5.XML 不會(huì)替代 HTML,理解這一點(diǎn)很重要。在大多數(shù) web 應(yīng)用程序中,XML 用于傳輸數(shù)據(jù),而 HTML 用于格式化并顯示數(shù)據(jù)。
XML 無(wú)所不在。XML 是各種應(yīng)用程序之間進(jìn)行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ撸⑶以谛畔⒋鎯?chǔ)和描述領(lǐng)域變得越來(lái)越流行。
對(duì) XML 最好的描述是:

XML 是獨(dú)立于軟件和硬件的信息傳輸工具。

6.XML 沒(méi)有預(yù)定義的標(biāo)簽

在 HTML 中使用的標(biāo)簽(以及 HTML 的結(jié)構(gòu))是預(yù)定義的。HTML 文檔只使用在 HTML 標(biāo)準(zhǔn)中定義過(guò)的標(biāo)簽(比如 < p > 、< h1 > 等等)。

XML 允許創(chuàng)作者定義自己的標(biāo)簽和自己的文檔結(jié)構(gòu)。

練習(xí):

<?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>

02.DTD

1.什么是DTD?
文檔類型定義(DTD)可定義合法的XML文檔構(gòu)建模塊。它使用一系列合法的元素來(lái)定義文檔的結(jié)構(gòu)。

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

2.內(nèi)部DTD的定義
假如 DTD 被包含在您的 XML 源文件中,它應(yīng)當(dāng)通過(guò)下面的語(yǔ)法包裝在一個(gè) DOCTYPE 聲明中:

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

數(shù)量詞
+: 表示出現(xiàn)1次或多次,至少一次。

?:表示出現(xiàn)0次或1次。

*:表示出現(xiàn)任意次。

2.1.元素聲明語(yǔ)法

<!ELEMENT 元素名稱 (元素內(nèi)容)>查看

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

<!ATTLIST 元素名稱 屬性名稱 屬性類型 默認(rèn)值>
如:<!ATTLIST payment type CDATA "check">
<?xml version="1.0" encoding="UTF-8"?>
<!--聲明內(nèi)部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">

關(guān)于XSD
XML Schema是DTD的替代者。
不僅可以定義XML文檔的結(jié)構(gòu),還可以規(guī)范文檔的內(nèi)容。

03.XML的解析

對(duì)xml文件進(jìn)行操作,包括創(chuàng)建xml,對(duì)xml文件進(jìn)行增刪改查操作。

3.1 常見(jiàn)的xml解析技術(shù)

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

SAX解析
是民間解析方式,基于事件的解析
適用于數(shù)據(jù)量較大的XML.

JDOM解析
開(kāi)放源碼,比DOM更快,使用類

DOM4J解析
第三方,開(kāi)源免費(fèi),是JDOM的升級(jí)版,使用接口

dom4j創(chuàng)建xml

1.通過(guò)DocumentHelper生成一個(gè)Document對(duì)象。
Document doc =DocumentHelper.createDocument();

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

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

4.為book元素添加屬性(可以鏈?zhǔn)骄幊蹋?br>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);

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容