【XML】XML语法格式提要
XML語法規則綱要
- XML文檔必須有且只有一個根元素
- XML元素都必須有一個關閉標簽
- XML標簽對大小寫敏感
- XML元素必須被正確的嵌套
- XML屬性值必須加引號
XML文檔必須有且只有一個根元素
對于下面的XML文檔
<?xml version="1.0" encoding="UTF-8" ?> <SALES><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A002</CODE><DESCRIPTION>Irish Creme Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A004</CODE><DESCRIPTION>Caramel Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A006</CODE><DESCRIPTION>Gourmet Coffee Travel Thermo</DESCRIPTION><PRICE>18.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A009</CODE><DESCRIPTION>Gourmet Coffee 36 Cup Filters</DESCRIPTION><PRICE>45.0</PRICE></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM></ORDER> </SALES>刪去根元素<SALES>:
<?xml version="1.0" encoding="UTF-8" ?> <ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A002</CODE><DESCRIPTION>Irish Creme Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM> </ORDER> <ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A004</CODE><DESCRIPTION>Caramel Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A006</CODE><DESCRIPTION>Gourmet Coffee Travel Thermo</DESCRIPTION><PRICE>18.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM> </ORDER> <ORDER><ORDERITEM><PRODUCT><CODE>A009</CODE><DESCRIPTION>Gourmet Coffee 36 Cup Filters</DESCRIPTION><PRICE>45.0</PRICE></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM> </ORDER>就會解析錯誤:
錯因在第20行的<ORDER>上,也就是說,新的XML文檔在被瀏覽器解析的時候默認了<ORDER>是根元素,而第一次<\ORDER>出現的時候,意味著整個XML文檔的結束,后面仍有<ORDER>就不合法,XML文檔樹可不是森林,必須單根。
XML元素都必須有一個關閉標簽
這個關閉標簽啊,在HTML中經常有不寫關閉標簽的情況而并不會解析錯誤。
即使是HTML5,也被迫向某些陋習妥協了,比如<p>等等
但是XML語法要求嚴格,標簽必須被關閉。
如果我們刪去上面代碼最后一行的<\SALES>,就會解析錯誤:
當然了,我們這時以根元素舉的例子,錯誤原因來自于文檔解析到結尾仍沒出現根元素<SALES>的關閉標簽<\SALES>,這是不被允許的。
事實上,任何XML元素都是如此。
XML標簽對大小寫敏感
一般的編程語言都對大小寫敏感,像 Visual Basic 系列這種不管大小寫的真是奇葩……
XML雖不是編程語言,但也對大小寫敏感。
怎么說敏感呢?
就是說<SALES>與<sales>是完全不同的標簽。
我們將上面代碼的最后一行的<\SALES>換成<\sales>:
顯示解析錯誤:
再換成<HHH>,看看解析情況:
都是“非配對的標簽”,其實人家都沒管你是不是大小寫問題,直接就是認為反正你不是<\SALES>就是不對。
所以要注意大小寫啊!!!
XML元素必須被正確的嵌套
這個問題是說,比如我們<SALES>嵌套了<ORDER>,收尾順序就得是先<\ORDER>后<\SALES>,有棧的意味。
如果膽敢出現FIFO隊列式的先<\SALES>后<\ORDER>,就算嵌套錯誤,導致解析錯誤。
XML屬性值必須加引號
有關屬性的問題我在這篇文章中已經講過很詳細了,就不再細說。
必須注意的一點是:XML屬性值必須加引號。
XML屬性其實換成JSON顯得更直白,就和Python的字典一個樣子,key:value式的KV對,只不過這個value不管是什么值,都必須加引號,就比如下面的例子:
<PRODUCT id="202003010001">不能寫成下面的樣子:
<PRODUCT id=202003010001>XML不管屬性值是不是數值,反正必須加引號!!!
總結
以上是生活随笔為你收集整理的【XML】XML语法格式提要的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路径计数2(洛谷P1176题题解,Jav
- 下一篇: 【VB.NET】测验题目Quiz2