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
