亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

XML 語(yǔ)法速查筆記

JowayYoung / 1713人閱讀

摘要:語(yǔ)法規(guī)則速查所有元素均需要有關(guān)閉標(biāo)簽,比如均必須跟著一個(gè)結(jié)尾標(biāo)簽大小寫敏感必須正確地嵌套必須有且只有一個(gè)根元素屬性值必須加上引號(hào),至于屬性名則無(wú)需引號(hào)。命名空間約定使用冒號(hào)進(jìn)行分分隔。

相比起 Json,XML 是一種相對(duì)古老和復(fù)雜、但功能更加強(qiáng)大的數(shù)據(jù)存儲(chǔ)/傳輸格式。也因?yàn)槠鋸?fù)雜,有一些語(yǔ)法需要記錄一下,在使用多種語(yǔ)言進(jìn)行 XML 操作的時(shí)候備查。

范例

下面是一個(gè)相對(duì)比較完整的 XML 范例:




   Andrew
   
      2018-10-11
      2018
      10
      11
   
   這是一個(gè)示例性質(zhì)的 XML 范例。可以看到,一些關(guān)鍵字符比如雙引號(hào) " 是需要轉(zhuǎn)義的。
   
      
      amc
   

以下內(nèi)容主要根據(jù)上述范例進(jìn)行說(shuō)明。

概念和關(guān)鍵詞

XML:可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language)

XML 文檔:上述范例就是一個(gè) XML 文檔

元素:一個(gè) ... 對(duì)及其中間的部分加起來(lái),就是一個(gè)元素

XML 標(biāo)簽(Tags):范例中的 文字就是一對(duì)標(biāo)簽

根元素:每個(gè) XML 文檔需要有且只有一個(gè)根元素,這個(gè)元素是所有元素的祖先元素

子元素(Children)、同胞元素(Siblings):范例中 元素下的 、 元素就是子元素,這幾個(gè)子元素之間互為同胞元素

文本內(nèi)容(Text):范例中, 元素中的 Andrew 就是文本內(nèi)容;同理 元素下的 2018-10-11 也是文本內(nèi)容

屬性(Attributes):范例中 main_page 元素中有一段文字 id="1307425",這就是元素 main_page 的屬性,其屬性名為 "id",屬性值 為 “1307425”。

語(yǔ)法規(guī)則速查

所有 XML 元素均需要有關(guān)閉標(biāo)簽,比如 均必須跟著一個(gè) 結(jié)尾

XML 標(biāo)簽大小寫敏感

XML 必須正確地嵌套

XML 必須有且只有一個(gè)根元素

屬性值必須加上引號(hào),至于屬性名則無(wú)需引號(hào)。

XML 元素命名規(guī)則

強(qiáng)制性的命名規(guī)則如下:

元素命名只包含文字(包括非英文的文字)、數(shù)字、字符

不能以 “XML” 或其他大寫轉(zhuǎn)換后為 “XML” 的字符串開(kāi)頭

不能包含空格

約定俗成(建議)的命名規(guī)則,除了上述幾條之外,還有:

不要使用減號(hào)/連字符 “-”,建議使用下劃線 “_

避免使用點(diǎn) “.” 和冒號(hào) “:

不要使用非 ascii 字符

屬性

建議避免使用屬性,而是以子元素 + 文本內(nèi)容的方式來(lái)替代。比如:

2018-10-11

建議替換成范例中的:


   2018-10-11
   2018
   10
   11
“轉(zhuǎn)義”

這里借用了 C/C++ 里格式化字符串的 “轉(zhuǎn)義” 一詞,但是實(shí)際上 XML 沒(méi)有這個(gè)名詞,而是 “實(shí)體引用”。XML 中有五個(gè)預(yù)定義的實(shí)體引用,在使用的時(shí)候需要 “轉(zhuǎn)義”:

字符名 字符 “轉(zhuǎn)義” 后的字符串
小于號(hào) < <
大于號(hào) > >
”and“ 符號(hào) & &
單引號(hào) " '
雙引號(hào) " "

其中只有 <& 是確實(shí)需要特殊處理的,但是作為規(guī)范,上述所有符號(hào)實(shí)際操作中均應(yīng)處理。

XML CDATA

XML CDATA 是一個(gè)關(guān)鍵字,其包含的內(nèi)容不會(huì)被 XML 解析器解析。CDATA 采用 開(kāi)頭,用 ]]> 結(jié)尾。比如范例中的:

注意不同語(yǔ)言或庫(kù)對(duì) CDATA 的解析方式可能會(huì)有所不同,比如 Python 解析 CDATA 后會(huì)得到一個(gè)普通的 text 值,但是 RapidXML 則會(huì)得到一個(gè)子元素。

CDATA 也有限制,就是正文中不能包含 ]]>,否則會(huì)導(dǎo)致解析錯(cuò)誤。

XML 命名空間

這個(gè)功能目前筆者覺(jué)得比較少用,不過(guò)還是記錄一下。命名空間約定使用冒號(hào)進(jìn)行分分隔。命名空間可以手動(dòng)指定,如:


   African Coffee Table
   80
   120

實(shí)操中,推薦加上命名空間屬性 xmlns,如:


   African Coffee Table
   80
   120
參考資料

XML 編碼 - W3school 在線教程

RapidXML解析CDATA類型節(jié)點(diǎn)的問(wèn)題

XML 宣告 XML 標(biāo)準(zhǔn)

XML 在線格式化 - 1

XML 在線格式化 - 2

本文章采用 知識(shí)共享署名-非商業(yè)性使用-相同方式共享 4.0 國(guó)際許可協(xié)議 進(jìn)行許可。

本文地址:https://segmentfault.com/a/1190000016649785
原文發(fā)布于:https://cloud.tencent.com/developer/article/1351914,也是本人的專欄。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/110382.html

相關(guān)文章

  • XML 語(yǔ)法速查筆記

    摘要:語(yǔ)法規(guī)則速查所有元素均需要有關(guān)閉標(biāo)簽,比如均必須跟著一個(gè)結(jié)尾標(biāo)簽大小寫敏感必須正確地嵌套必須有且只有一個(gè)根元素屬性值必須加上引號(hào),至于屬性名則無(wú)需引號(hào)。命名空間約定使用冒號(hào)進(jìn)行分分隔。 相比起 Json,XML 是一種相對(duì)古老和復(fù)雜、但功能更加強(qiáng)大的數(shù)據(jù)存儲(chǔ)/傳輸格式。也因?yàn)槠鋸?fù)雜,有一些語(yǔ)法需要記錄一下,在使用多種語(yǔ)言進(jìn)行 XML 操作的時(shí)候備查。 范例 下面是一個(gè)相對(duì)比較完整的 ...

    AlanKeene 評(píng)論0 收藏0
  • 前端復(fù)習(xí)筆記--1.html標(biāo)簽復(fù)習(xí)速查

    摘要:可讀性,提高代碼的可讀性,便于多人的修改維護(hù),提高開(kāi)發(fā)效率。主流瀏覽器都兼容的新標(biāo)簽,對(duì)于及以下版本不認(rèn)識(shí)的新元素,可以使用創(chuàng)建一個(gè)沒(méi)用的元素來(lái)解決,例如,也可以使用來(lái)解決兼容性問(wèn)題,詳情可參考 概覽 showImg(https://segmentfault.com/img/bV5JXT?w=1880&h=1050); 文檔章節(jié) 導(dǎo)航 表示和主要內(nèi)容不相關(guān)的區(qū)域 表示一個(gè)獨(dú)...

    番茄西紅柿 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<