XML文件的特點


1.這個東西的規則比較簡單,並且人眼看起來也比較容易理解,結構上也比較好操作,並且並無與任何編程語言綁定。

所以,很多編程語言就都為XML這個東西編寫了讀寫XML的庫,所以XML看起來所謂的通用,其實主要不是因為本身通用,而是因為XML本身的特點導致很多人願意編寫操作XML的相關的庫,於是就“通用”了。

2.語法規則,簡單的特性直接導致了她另一方面的問題。即信息密度太低,同樣的信息量需要的文本長度更長。

3.提供了一種描述事物的方法,而且這種方法能夠表述列表、樹等常見的數據結構,可擴展性好。

4.用純文本語言書寫,人們可以讀懂內容,也可以自行修改里面的內容是樹形結構,關於書有很多非常成熟的算法描述和操作。

5.用純文本保存結構化數據是xml最大的優點。

6.xml文件可以自由定義屬性和層次關系,使用中可以比較靈活的反應對象的信息。

7.XML是第一代人和機器都能讀懂的語言,That's all

8.XML 有一套工具,用來存儲和操作數據。它提供了解釋(Parser),驗證(DTD,schema),查詢(XQuery),變換(XSLT)。每個工具都幫你處理了大量令人頭痛的問題。

需要存儲和操作數據嗎?請使用 XML。

9.XML就是給各種事物加標簽,以達到完整的表述事物的屬性。

就像在街上看到男的就加上<高帥富>、<屌絲>的標簽,看到女的就加上<1分>、<6分>、<10分>等標簽。大家看的時候就一目了然。

10.解決了“如何來表示一些信息”這個問題。

11.簡單概括(可能概括的不是很准確,但是我的語言功底也就到這了,見諒)的話就是,xml本身是一種格式規范,是一種包含了數據以及數據說明的文本格式規范。 

舉例:

 

比如,我們要給對方傳輸一段數據,數據內容是“too young,too simple,sometimes naive”,要將這段話按照屬性拆分為三個數據的話,就是,年齡too young,閱歷too simple,結果sometimes naive。

 

我們都知道程序不像人,可以體會字面意思,並自動拆分出數據,因此,我們需要幫助程序做拆分,因此出現了各種各樣的數據格式以及拆分方式。

 

比如,可以是這樣的

數據為“too young,too simple,sometimes naive”

然后按照逗號拆分,第一部分為年齡,第二部分為閱歷,第三部分為結果。

 

也可以是這樣的

數據為“too_young**too_simple*sometimes_naive”

從數據開頭開始截取前面十一個字符,去掉*號並把下划線替換為空格作為第一部分,再截取接下來的十一個字符同樣去掉*並替換下划線為空格作為第二部分,最后把剩下的字符同樣去*號體會空格作為第三部分。

 

這兩種方式都可以用來容納數據並能夠被解析,但是不直觀,通用性也不好,而且如果出現超過限定字數的字符串就容納不了,也可能出現數據本身就下划線字符導致需要做轉義。

 

基於這種情況,出現了xml這種數據格式, 上面的數據用XML表示的話

可以是這樣

<person age="too young" experience="too simple" result="sometimes naive" />

 

也可以是這樣

<person>

    <age value="too young" />

    <experience value="too simple" />

    <result value="sometimes naive" />

</person>

 

兩種方式都是xml,都很直觀,附帶了對數據的說明,並且具備通用的格式規范可以讓程序做解析。

 

如果用json格式來表示的話,就是下面這樣

{

    "age":"too young",

    "experience":"too simple",

    "result":"sometimes naive"

}

看出來沒,其實數據都是一樣的,不同的只是數據的格式而已,同樣的數據,我用xml格式傳給你,你用xml格式解析出三個數據,用json格式傳給你,你就用json格式解析出三個數據,還可以我本地保存的是xml格式的數據,我自己先解析出三個數據,然后構造成json格式傳給你,你解析json格式,獲得三個數據,再自己構造成xml格式保存起來,說白了,不管是xml還是json,都只是包裝數據的不同格式而已,重要的是其中含有的數據,而不是包裝的格式。(來源:https://www.zhihu.com/question/31353595/answer/60826602)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM