XML教學 | 語法規則
XML
語法規則
XML
的語法規則很簡單,且很有邏輯。這些規則很容易學習,也很容易使用。
第一行是XML
宣告:
XML
宣告說明XML文件的基本資訊,包括版本號與字元集,寫在XML第一行。1
version
:該屬性必須存在。encoding
:該屬性非必須的,打開當前XML
文件的時候應該是使用什麼編碼。註:
UTF-8
也是HTML5
,CSS
,JavaScript
,PHP
, 和SQL
的預設編碼。standalone
:該屬性非必須的,描述XML
文件是否依賴其他的XML
文件;取值為yes/no
。
XML
文件必須有根元素:
XML
必須包含根元素,它是所有其他元素的父元素。- 只有一個根元素。
以下範例note
為根元素 -
1 |
|
以下範例breakfast_menu
為根元素 -
1 |
|
XML
標籤必須成對出現:
- 建立
XML
時,省略結束標籤是不合法的。XML
元素必須具有結束標籤。
在HTML
中,某些元素不必有一個關閉標籤:
1 | <p>See Spot run. |
在XML
中,省略關閉標籤是非法的。所有元素都必須有關閉標籤:
1 | <p>See Spot run.</p> |
註:從上面的範例,可以注意到
XML
宣告沒有關閉標籤。這不是錯誤。宣告不是XML
文件本身的一部分,它沒有關閉標籤。
XML
標籤大小寫敏感:
- 建立
XML
文件時,標籤<Body>
與標籤<body>
是不同的。
1 | <Body>See Spot run.</body> <!-- 不正確 --> |
XML
元素都必須適當巢狀化
- 不適當的巢狀標籤對 XML 沒有意義。
1 | <b><i>This text is bold and italic.</b></i> <!-- 不正確 --> |
註:從上面的範例,正確巢狀化的意思是:由於
<i>
元素是在<b>
元素內打開的,那麼它必須在<b>
元素內關閉。
屬性值必須一律以引號括住
- 在屬性值周圍省略引號是不合法的。
XML
元素可以有名稱/值配對中的屬性;不過,屬性值必須一律以引號括住。
1 | <note date=12/11/2007> <!-- 不正確 --> |
1 | <note date="12/11/2007"> <!-- 正確 --> |
註:從上面的範例,第一個
note
元素內的date
屬性的值,並沒有使用引號括住。
XML
特殊字符與CDATA
標籤
XML
中,一些字符擁有特殊的意義。如果把字符<
放在XML
元素中,會發生錯誤,這是因為解析器會把它當作新元素的開始。解決方式一:使用實體參照。
實體 | 符號 | 說明 |
---|---|---|
< |
< | 小於 |
> |
> | 大於 |
& |
& | 和號 |
' |
‘ | 單引號 |
" |
“ | 雙引號 |
範例:
1 | <message>if salary < 1000 then</message> <!-- 不正確 --> |
- 解決方式二:使用
<![CDATA[開始 ~ 結束]]>
將該部分內容包裹起來。
範例:
1 | <message>if salary < 1000 then</message> <!-- 不正確 --> |
XML
空格會被保留
HTML
會把多個連續的空格(合併)為一個。XML
中,文件中的空格不會被刪減。
XML
註解
XML
中註解的語法與HTML
的語法很相似。
1 | <!-- This is a comment --> |
結語
最後總結一下XML
的語法規則:
- 文件宣告必須要在第一行。
- 必須存在一個根,有且只能有一個。
- 標籤必須有結束標籤(成對)。
- 標籤名稱是大小寫敏感。
- 標籤必須適當巢狀化。
- 屬性的值必須使用引號括括住。
- 特殊符號需要做處理。
- 空格會被保留
基本上這些規則都不難理解,也不難記得,所以XML
在使用上可以說是非常簡單的,下一章節將會對元素做更深入的介紹。
註:以上參考了
IBM - XML 語法規則
稀土掘金 - XML学习 “騎著小黑馬”
w3resource.com - XML CDATA
RUNOOB.COM - XML 语法规则
維基百科-XML
Family with 220 icons by inipagi