XML入門
工作中遇到一些xml檔案,之前都只是聽過名字,今天來認真瞭解一下它到底是什麼。
部落格來源:W3School
XML簡介
XML是 可擴充套件標記語言 (Extensible Markup Language)
XML也是一種標記語言,很類似HTML
但是,XML被設計用來傳輸和儲存資料;HTML被設計用來顯示資料
XML的標籤沒有被預定義,需要使用者自行定義標籤。
XML被設計為具有自我描述性,是W3C的推薦標準。
由上邊的介紹可知,其實XML和HTML都是標記語言,但是彼此存在的目的不用,作用也不同。HTML旨在顯示資訊,而XML旨在傳輸資訊。
XML是沒有任何行為的。也就是說,XML不會做任何事情,只被用來結構化,儲存以及傳輸資訊
例如,我們把John寫給George的便籤儲存為XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
這條便籤具有自我描述性,能夠顯而易見的看出其中的標題,留言,傳送者,接受者等資訊。
但是這個XML沒做任何事,僅僅是把一條便籤資訊包裝成XML檔案,我們要編寫程式才能傳送接受和顯示這個文件。
XML 是獨立於軟體和硬體的資訊傳輸工具
XML 用途
XML 應用於web開發的許多方面,常用語簡化資料的儲存和共享。
XML 把資料從HTML 分離
如果要在HTML文件中顯示動態資料,那麼每當資料改變時要花時間編輯HTML。
通過XML,資料能儲存在獨立的XML 檔案中。讓HTML專注於佈局和現實,保證修改資料對顯示不做影響即可。
通過幾行javascript,就可以讀取一個外部XML檔案,然後更新HTML中的資料內容。
由於不同的軟體/硬體使用不相容的格式來儲存資料,所以XML提供了獨立的純文字儲存方法,讓不同的程式之間共享資料變得簡單,也讓資料得以在不相容的系統之間進行輕鬆的交換。
也有很多新的Interent語言是通過XML建立的:
- XHTML - 最新的 HTML 版本
- WSDL - 用於描述可用的 web service
- WAP 和 WML - 用於手持裝置的標記語言
- RSS - 用於 RSS feed 的語言
- RDF 和 OWL - 用於描述資源和本體
XML 樹結構
XML 文件形成了一種樹結構,可以類比HTML的DOM樹
再看之前那個XML文件例項:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第一行是XML宣告。它定義了XML的版本(1.0)和所使用的的編碼(ISO-8859-1 = Latin-1/西歐字符集)
接下來通過自定義標籤來表述資訊,可以顯而易見的看出這是一個便籤<note>
,其中包含<from><to><heading><body>
4個子元素,他們都要用類似的形式來閉合結尾。能看出XML的自我描述性很強。
XML必須包含根元素,它是所有元素的父元素(類比一下,HTML的根元素是<html>
元素),其他元素都包含在他裡面。
XML語法
XML元素的標籤 一定要 閉合。
XML宣告不屬於XML本身的組成部分,他不是XML元素,所以不用閉合。
XML對大小寫敏感。
XML也有屬性,寫法跟HTML類似,屬性值要加引號
XML中,有一些字元有特殊意義,不能直接寫,要使用字元實體:
- < 小於
- > 大於
- & 和號
- ’ 單引號
- ” 引號
XML中註釋使用和HTML中一致:
<!-- 在這裡寫註釋 -->
在HTML中,多個空格會被縮減合併為1個空格;而XML中,會保留。
XML 元素
XML元素可以包含文字和其他元素。
XML元素有屬性。
XML 命名規則
XML 元素必須遵循以下命名規則:
- 名稱可以含字母、數字以及其他的字元
- 名稱不能以數字或者標點符號開始
- 名稱不能以字元 “xml”(或者 XML、Xml)開始
- 名稱不能包含空格
- 可使用任何名稱,沒有保留的字詞。
最好使用<book_title></book_title>
這種命名習慣。
XML元素是可擴充套件的:
在XML中增加資訊,並不會影響原本讀取XML的程式。
XML 屬性
XML元素可以在開始標籤中包含屬性,類似HTML
屬性提供關於元素的額外附加資訊。但是儘量避免使用屬性,改用子元素放置資訊。
例子:
<!-- 使用屬性 -->
<note date="08/08/2008">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
<!-- 使用date元素 -->
<note>
<date>08/08/2008</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
<!-- 使用擴充套件了的date元素(最好的方式) -->
<note>
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
在此我們極力向您傳遞的理念是:後設資料(有關資料的資料)應當儲存為屬性,而資料本身應當儲存為元素。
XML 驗證
擁有正確語法的 XML 被稱為“形式良好”的XML
通過DTD驗證的XML是“合法的XML”
DTD 的作用是定義 XML 文件的結構。
XML 驗證器
XML錯誤會終止你的程式。
XML 瀏覽器支援
幾乎所有的主流瀏覽器均支援 XML 和 XSLT。
檢視 XML 檔案
在所有現代瀏覽器中,均能夠檢視原始的 XML 檔案。
不要指望 XML 檔案會直接顯示為 HTML 頁面。
XMLHttpRequest 物件
XMLHttpRequest物件用於在後臺與伺服器交換資料。
這一串看起來很眼熟有沒有,這不就是ajax嘛!
原來AJAX = “Asynchronous Javascript And XML”,即非同步js和XML。一下子把之前學的東西都接上了。ajax的作用大家都很熟悉了就不贅述了。
所有現代瀏覽器都內建了供讀取和操作XML的XML解析器。
解析器把XML轉換為XML DOM物件 - 可通過javascript操作的物件。
相關文章
- XML入門指南(4)XML元素(轉)XML
- XML入門指南(18)XML行為(轉)XML
- XML入門指南(15)XML編碼(轉)XML
- XML入門指南(6)XML確認(轉)XML
- XML入門指南(3)XML語法(轉)XML
- XML入門指南(1)XML簡介(轉)XML
- XML入門指南(17)XML HTTP 請求(轉)XMLHTTP
- XML入門指南(7)XML瀏覽器(轉)XML瀏覽器
- Javaweb入門20160301 ---xml入門JavaWebXML
- XML入門指南(19)XML相關技術(轉)XML
- XML入門的小介紹XML
- XML-RPC入門 (轉)XMLRPC
- 18句話入門SQLServer XMLSQLServerXML
- XML入門指南(8)使用CSS來顯示XML(轉)XMLCSS
- xml--概述,快速入門,約束XML
- javaweb入門20160305---xml的解析入門JavaWebXML
- XML從入門到深入(超詳細)XML
- javascript快速入門24--XML基礎JavaScriptXML
- android 入門xml佈局檔案AndroidXML
- VS2005入門之XMLXML
- XML入門常見問題(3)(轉)XML
- XML入門常見問題(2)(轉)XML
- XML入門常見問題(1)(轉)XML
- XML輕鬆學習手冊(2)XML快速入門之二(轉)XML
- XML輕鬆學習手冊(2)XML快速入門之三(轉)XML
- XML入門指南(9)使用XSL來顯示XML資料(轉)XML
- C# XML基礎入門(XML檔案內容增刪改查清)C#XML
- SVG XML 格式定義圖形入門介紹SVGXML
- javascript快速入門25--瀏覽器中的XMLJavaScript瀏覽器XML
- XML入門精解之結構與語法 (轉)XML
- XML入門精解之結構與語法(轉)XML
- 關於Android中xml佈局檔案之android 入門xml佈局檔案AndroidXML
- Maven快速入門(四)Maven中的pom.xml檔案詳解MavenXML
- 入門入門入門 MySQL命名行MySql
- Spring Boot入門(七):使用MyBatis訪問MySql資料庫(xml方式)Spring BootMyBatisMySql資料庫XML
- MyBatis從入門到精通(二):MyBatis XML方式的基本用法之SelectMyBatisXML
- MyBatis從入門到精通(三):MyBatis XML方式的基本用法之多表查詢MyBatisXML
- MyBatis從入門到精通(四):MyBatis XML方式的基本用法之增刪改MyBatisXML