1. 程式人生 > >XML——通俗易懂去理解

XML——通俗易懂去理解

逗號 鏈接 直觀 獲得 www. ext 解析 react json格式

總能看見XML文件,自己也會用到,但是並沒有辦法深刻理解“可擴展標記語言”這幾個字,網上查閱後依舊謝謝知乎!

作者:華子
鏈接:https://www.zhihu.com/question/31353595/answer/60826602
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

簡單概括(可能概括的不是很準確,但是我的語言功底也就到這了,見諒)的話就是,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
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

XML——通俗易懂去理解