XML語言學習隨筆

本文轉載於:猿2048網站☞XML語言學習隨筆php

     XML和HTML都是W3C的定製的標準,XML的誕生自己是爲了替代不成熟的HTML,可是由於現實的環境,XML替代HTML並未成功。以後W3C爲了代碼嚴謹性的決心,又發佈了升級版的標記語言XHTML,可是依然由於顯示環境的主要緣由,未能成功推廣,知道今天HTML5的誕生!瀏覽器

     XML簡單的特色服務器

       1. 比HTML更加規範嚴謹工具

       2.具有樹狀格式學習

       3.具備層次感網站

     XML的組成編碼

       1.文檔聲明spa

       2.元素code

       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解析更簡單和對內存佔用更小!

 

 關於老師講的學習這些知識:咱們學習,是否須要掌握到所有的具體精細到點內容的問題。這是沒必要要的,咱們只要能大概知道這部分知識,之後能在開發中遇到問題時,大概知道是哪方面的,在着重學習其核心知識,能事半功倍,若是如今連運用場合都不知道,盲目去直接跟着視頻學習到具體核心技術點的那些複雜直視,按照一般人的大腦會把沒用的都淘汰掉,估計學完也就忘完了!

 人腦是奇妙的,若是你不告訴他這種知識可以作什麼,就會很快遺忘。若是你不知道學習這篇內容的學習目的,那麼同樣會學得多忘得多!       

相關文章
相關標籤/搜索