XML和HTML都是W3C的定製的標準,XML的誕生本身是為了替代不成熟的HTML,但是因為現實的環境,XML替代HTML並未成功。之後W3C為了代碼嚴謹性的決心,又發佈了升級版的標記語言XHTML,但是依然因為顯示環境的主要原因,未能成功推廣,知道今天HTML5的誕生! XML簡單的特點 1. 比 ...
XML和HTML都是W3C的定製的標準,XML的誕生本身是為了替代不成熟的HTML,但是因為現實的環境,XML替代HTML並未成功。之後W3C為了代碼嚴謹性的決心,又發佈了升級版的標記語言XHTML,但是依然因為顯示環境的主要原因,未能成功推廣,知道今天HTML5的誕生!
XML簡單的特點
1. 比HTML更加規範嚴謹
2.具備樹狀格式
3.具有層次感
XML的組成
1.文檔聲明
2.元素
3.屬性
4.註釋
5.CDATA區
6.特殊字元
7.處理命令
文檔聲明
在XML中必須存在文檔聲明,否則絕對是一個不規範的XML,寫法:<? xml version="1.0" encoding="utf-8" standalone="yes" ?><xml>
屬性 version 表示版本號 附:因為XML並未推廣成功,所以XML目前只有1.0版本
屬性 encoding 文本編碼
屬性 standalone 獨立運行 附:日常中幾乎這個屬性不怎麼出現
關於文本編碼聲明說明:
日常生活中,我們寫完XML代碼然後保存XML格式文件到硬碟需要轉換到二進位,當文本轉到二進位後,如果放在伺服器,有客戶這是訪問了這個文檔,那麼此時伺服器就會發生二進位給對方,對方收到後,為了還原,所以瀏覽器會自動解碼成能夠看懂的編碼,而在中國瀏覽器使用的是GBK編碼,而編輯XML的工具保存XML的時候,通常是UTF-8編碼,為了使客戶獲取文本後,能夠看到正確的內容,此時我們就需要在文檔中聲明 編碼格式為 encoding=”UTF-8“ 那麼在對方瀏覽器解析二進位後,就會自動轉換成UTF-8而不是轉換為GBK編碼的亂碼形式顯示。
元素(標記/標簽)
1.標簽不像HTML 中可以有<br/>這種形式存在,XML是規範嚴謹的 所以有開始標簽,必須有結束標簽
2.標簽和HTML一樣,不支持交叉嵌套
3.一個合理的XML文檔,整篇只會存在一個根元素,充分體現樹狀形式
4.對於XML而言 空格和換行符都會當作內容處理,所以嚴謹的XML文檔請勿如同平時HTML一樣隨意打上空格和換行符!
5.XML是區分大小寫的,所以請確保大小寫不規範
屬性
1. 一個標簽可以有多個屬性,就如同聲明標簽<XML></XML>一樣裡面可以放版本,編碼等屬性
2. 屬性的值根據XML的規範需要打上雙引號
CDATA
在日常中,就如同我現在寫筆記,不妨會出現<> [] 此類特殊字元,而XML中<>是具備特殊含義的。一般我們可以用轉義字元方式顯示,但是如果內容特別多,這樣比較麻煩,所以XML特別提供了CDATA分區。
我們只要將內容前後輸入<![CDATA[ code ]]> 標簽,然後在code區輸入自己需要寫的內容,那麼XML就不會將此區域里的特殊字元<>此類當作標簽定義,而是正常的文本!
瀏覽器解析的三個方式 附: 解析就是為了對HTML或XML動態的可以改變文檔的內容,以及可以結構化的查詢某個標簽的具體內容 屬性等。
DOM解析:將所有的標簽都轉換為對象,存放在記憶體中,這樣資源可以隨意調用修改,但是因為在記憶體所以特別占用資源
SAX解析:這種解析方式會逐行地去掃描XML文檔,當遇到標簽時會觸發解析處理器,採用事件處理的方式解析XML (Simple API for XML) ,不是官方標準,但它是 XML 社區事實上的標準,幾乎所有的 XML 解析器都支持它。優點是:在讀取文檔的同時即可對XML進行處理,不必等到文檔載入結束,相對快捷。不需要載入進記憶體,因此不存在占用記憶體的問題,可以解析超大XML。缺點是:只能用來讀取XML中數據,無法進行增刪改,以及觸發後則全篇解析。
Pull解析: 這種方式是sax解析的改版,安卓通常採用的方式, 同樣採用事件觸發解析,但是不需要掃描整個文件流,找到需要的那部分,就解析那部分,避免了SAX解析方式,只要觸發則全篇解析,所以比sax解析更簡單和對記憶體占用更小!
關於老師講的學習這些知識:我們學習,是否需要掌握到全部的具體精細到點內容的問題。這是不必要的,我們只要能大概知道這部分知識,以後能在開發中遇到問題時,大概知道是哪方面的,在著重學習其核心知識,能事半功倍,如果現在連運用場合都不知道,盲目去直接跟著視頻學習到具體核心技術點的那些複雜直視,按照通常人的大腦會把沒用的都淘汰掉,估計學完也就忘完了!
人腦是奇妙的,如果你不告訴他這種知識能夠做什麼,就會很快遺忘。如果你不知道學習這篇內容的學習目的,那麼一樣會學得多忘得多!