XML指可擴展標記語言很類似 HTML,被設計用來傳輸和存儲數據而非顯示數據,XML標簽沒有被預定義需要自行定義標簽,標簽具有自我描述性,同時XML也是 W3C 的推薦標准。
先來寫一個XML腳本demo.xml:
<?xml version="1.0" encoding="UTF-8"?> <!-- 版本1.0 編碼utf-8 --> <book > <title>xml</title> <description>xml可擴展標記語言</description> <year>1998</year> <price>30.00</price> </book>
在瀏覽器運行demo.xml:
1.如上圖就是一個XML文件,XML是純文本的,標簽不像HTML是預定義標簽,需要自行定義如:<note></note>、<標簽></標簽>、<qwer></qwer>,注意:XML的根標簽(最外層標簽)有且只能有一對!也就是上面代碼的<book></book>標簽
2.XML的標簽可以是中文,也可以是字母,對大小寫敏感推薦小寫,這里需要注意一下的是XML的語法嚴格,標簽必須成對出現即有開始又有結束,比如<title>xml 如果沒有閉合標簽就會報錯:
也有一種特殊的情況就是自閉和標簽,如:
<?xml version="1.0" encoding="UTF-8"?> <!-- 版本1.0 編碼utf-8 --> <book > <title>xml</title> <description>xml可擴展標記語言</description> <year>1998</year> <price>30.00</price> <a /> <!-- 自閉和標簽,瀏覽器可以正常解析--> </book>
3.XML標簽可以嵌套但是不能交叉嵌套:
<?xml version="1.0" encoding="UTF-8"?> <!-- 正確嵌套 --> <book > <title> <description>xml可擴展標記語言</description> </title> </book> <!-- 錯誤嵌套 --> <?xml version="1.0" encoding="UTF-8"?> <book > <title><description></title> xml可擴展標記語言</description> </book>
4.XML標簽也可以擁有屬性,屬性必須有值並加引號:
<?xml version="1.0" encoding="UTF-8"?> <book > <!-- 屬性名自定義,必須有值並加引號,推薦使用小寫 --> <title book_id="1">xml</title> <description>xml可擴展標記語言</description> <year>1998</year> <price>30.00</price> </book>
5.XML中實體引用:
< | < | 小於 |
> | > | 大於 |
& | & | 和號 |
' | ' | 單引號 |
" | " | 引號 |
在XML中如果你把字符 <放在 XML 元素中會發生錯誤,如:<description>5 < 10</description>,這是因為解析器會把<當作新元素的開始,為了避免這種錯誤就需要使用實體引用:
<?xml version="1.0" encoding="UTF-8"?> <book> <title>xml</title> <description>5 < 10</description> </book>
在 XML 中只有字符 < 和 &"確實是非法的,但是用實體引用來代替它是一個好習慣
6.XML CDATA
如果一大段內容包含字母數字漢字特殊符號等等,為了可以正常解析此時只使用實體引用並不現實,就需要用到<![CDATA[]]>:
<?xml version="1.0" encoding="UTF-8"?> <book> <title>xml</title> <content><![CDATA[一大段內容包含123qwer&<<<*;/]]></content> </book>
這樣在上面的代碼中,解析器會忽略 CDATA 部分中的所有內容而直接原模原樣顯示
注意注意注意:在 XML中換行會被保存視為一個節點,所以正常的xml文件都是一行搞定:
<?xml version="1.0" encoding="UTF-8"?> <bookstore><book book_id="1"><title>php</title><author><![CDATA[PHP是世界上最好的編程語言.emmm...]]></author></book></bookstore>