xml格式解析
- 實(shí)例分析
- xml文檔結(jié)構(gòu)
- 舉例
- xml語法特點(diǎn)
- 起始與注釋
- XML 文檔必須有且只有一個根元素
- XML 標(biāo)簽對大小寫敏感
- XML 命名規(guī)則
- 所有 XML 元素都須有關(guān)閉標(biāo)簽
- XML 必須正確地嵌套
- XML 的屬性值須加引號
- 實(shí)體引用(轉(zhuǎn)義)
- XML 元素是可擴(kuò)展的
- 術(shù)語解析與英文對照
- 實(shí)例理解
- sample-BREAKFAST
- sample-CD
- sample-PLANT
實(shí)例分析
<?xml version="1.0" encoding="utf-8"?> <!-- This is a XML comment --> <note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body> </note>XML 使用簡單的具有自我描述性的語法:
第一行是 XML 聲明。它定義 XML 的版本 (1.0) 和所使用的編碼 utf-8。
第二行描述文檔的根元素(像在說:“本文檔是一個便簽”);起到注釋作用。
接下來 4 行描述根的 4 個子元素(to,from, heading 以及 body);
表示把來自John的note消息發(fā)送給George,消息標(biāo)題是Reminder,
消息主體是:Don't forget the meeting!
最后一行定義根元素的結(jié)尾。
注意:屬性的內(nèi)容必須加上雙引號。
例如:
或者加時間也可以:
<time>20210721</time>xml文檔結(jié)構(gòu)
XML 文檔形成一種樹結(jié)構(gòu),XML 文檔必須包含根元素(有且只有一個)。
該元素是所有其他元素的父元素。
XML 文檔中的元素形成了一棵文檔樹。這棵樹從根部開始,并擴(kuò)展到樹的最底端。
舉例
<?xml version="1.0" encoding="utf-8"?> <!-- This is a XML comment -- > <bookstore><book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price></book><book category="CHILDREN"><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book><book category="WEB"><title lang="en">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price></book><book/> </bookstore> <bookstore>是根元素。
所有的<book>元素都被放在<bookstore>中。
里面存放了三本書。
表示書的分類。
<book> 元素有 4 個子元素:<title>、<author>、<year>、<price>。
里面分別有書的名字,作者,時間和價格:
結(jié)構(gòu)分析:
xml語法特點(diǎn)
起始與注釋
<?xml version="1.0" encoding="utf-8"?> <!-- This is a XML comment -- >此兩者均不屬于 XML 文檔內(nèi)容的一部分。提供給參閱者或是閱讀器使用。
<!-- <mm/> 等價于 <mm></mm>-- > <mm/>XML 文檔必須有且只有一個根元素
<bookstore> </bookstore> 根元素。
XML 標(biāo)簽對大小寫敏感
<bookstore> </bookstore> <Bookstore> </Bookstore>上面屬于兩類不同的標(biāo)簽。
XML 命名規(guī)則
XML 元素必須遵循以下命名規(guī)則:
名稱可以含字母、數(shù)字以及其他的字符
名稱不能以數(shù)字或者標(biāo)點(diǎn)符號開始
名稱不能以字符 “xml”(或者 XML、Xml)開始
名稱不能包含空格
所有 XML 元素都須有關(guān)閉標(biāo)簽
<bookstore> </bookstore> <book category="COOKING"> </book> <book/>元素必須有起始和結(jié)束標(biāo)簽,或者自結(jié)束。
XML 必須正確地嵌套
<author>Erik T. Ray <year>2003</year> </author> 正確嵌套
<b><i>This text is bold and italic</b></i> 錯誤嵌套
<b><i>This text is bold and italic</i></b> 正確
由于 <i> 元素是在 <b> 元素內(nèi)打開的,那么它必須在 <b> 元素內(nèi)關(guān)閉。
XML 的屬性值須加引號
<book category="COOKING"> category 是標(biāo)簽 book 的屬性,"COOKING"是屬性值。
<book category="WEB"> 屬性值必須用引號引起。
實(shí)體引用(轉(zhuǎn)義)
如果你把字符 “<” 放在 XML 元素中,會發(fā)生錯誤,這是因?yàn)榻馕銎鲿阉?dāng)作新元素的開始。
<message>if salary < 1000 then</message>,會報錯,此種情況,XML 提供了如下轉(zhuǎn)義列表。
所以上述寫法,應(yīng)該改為,<message>if salary < 1000 then</messa>
XML 元素是可擴(kuò)展的
隨時可以增加新的元素。
術(shù)語解析與英文對照
實(shí)例理解
sample-BREAKFAST
<breakfast_menu><food><name>Belgian Waffles</name><price>$5.95</price><description>Two of our famous Belgian Waffles with plenty of real maple syrup </description><calories>650</calories></food><food><name>Strawberry Belgian Waffles</name><price>$7.95</price><description>Light Belgian waffles covered with strawberries and whipped cream </description><calories>900</calories></food> </breakfast_menu>sample-CD
<?xml version="1.0" encoding="utf-8"?> <!-- This is a XML comment -- > <CATALOG><CD><TITLE>Empire Burlesque</TITLE><ARTIST>Bob Dylan</ARTIST><COUNTRY>USA</COUNTRY><COMPANY>Columbia</COMPANY><PRICE>10.90</PRICE><YEAR>1985</YEAR></CD><CD><TITLE>Romanza</TITLE><ARTIST>Andrea Bocelli</ARTIST><COUNTRY>EU</COUNTRY><COMPANY>Polydor</COMPANY><PRICE>10.80</PRICE><YEAR>1996</YEAR></CD><CD><TITLE>Soulsville</TITLE><ARTIST>Jorn Hoel</ARTIST><COUNTRY>Norway</COUNTRY><COMPANY>WEA</COMPANY><PRICE>7.90</PRICE><YEAR>1996</YEAR></CD><CD><TITLE>Midt om natten</TITLE><ARTIST>Kim Larsen</ARTIST><COUNTRY>EU</COUNTRY><COMPANY>Medley</COMPANY><PRICE>7.80</PRICE><YEAR>1983</YEAR></CD> </CATALOG>sample-PLANT
<CATALOG><PLANT><COMMON>Bloodroot</COMMON><BOTANICAL>Sanguinaria canadensis</BOTANICAL><ZONE>4</ZONE><LIGHT>Mostly Shady</LIGHT><PRICE>$2.44</PRICE><AVAILABILITY>031599</AVAILABILITY></PLANT><PLANT><COMMON>Columbine</COMMON><BOTANICAL>Aquilegia canadensis</BOTANICAL><ZONE>3</ZONE><LIGHT>Mostly Shady</LIGHT><PRICE>$9.37</PRICE><AVAILABILITY>030699</AVAILABILITY></PLANT><PLANT><COMMON>Ginger, Wild</COMMON><BOTANICAL>Asarum canadense</BOTANICAL><ZONE>3</ZONE><LIGHT>Mostly Shady</LIGHT><PRICE>$9.03</PRICE><AVAILABILITY>041899</AVAILABILITY></PLANT><PLANT><COMMON>Mayapple</COMMON><BOTANICAL>Podophyllum peltatum</BOTANICAL><ZONE>3</ZONE><LIGHT>Mostly Shady</LIGHT><PRICE>$2.98</PRICE><AVAILABILITY>060599</AVAILABILITY></PLANT><PLANT><COMMON>Phlox, Woodland</COMMON><BOTANICAL>Phlox divaricata</BOTANICAL><ZONE>3</ZONE><LIGHT>Sun or Shade</LIGHT><PRICE>$2.80</PRICE><AVAILABILITY>012299</AVAILABILITY></PLANT><PLANT><COMMON>Phlox, Blue</COMMON><BOTANICAL>Phlox divaricata</BOTANICAL><ZONE>3</ZONE><LIGHT>Sun or Shade</LIGHT><PRICE>$5.59</PRICE><AVAILABILITY>021699</AVAILABILITY></PLANT><PLANT><COMMON>Spring-Beauty</COMMON><BOTANICAL>Claytonia Virginica</BOTANICAL><ZONE>7</ZONE><LIGHT>Mostly Shady</LIGHT><PRICE>$6.59</PRICE><AVAILABILITY>020199</AVAILABILITY></PLANT><PLANT><COMMON>Trillium</COMMON><BOTANICAL>Trillium grandiflorum</BOTANICAL><ZONE>5</ZONE><LIGHT>Sun or Shade</LIGHT><PRICE>$3.90</PRICE><AVAILABILITY>042999</AVAILABILITY></PLANT><PLANT><COMMON>Grecian Windflower</COMMON><BOTANICAL>Anemone blanda</BOTANICAL><ZONE>6</ZONE><LIGHT>Mostly Shady</LIGHT><PRICE>$9.16</PRICE><AVAILABILITY>071099</AVAILABILITY></PLANT><PLANT><COMMON>Bee Balm</COMMON><BOTANICAL>Monarda didyma</BOTANICAL><ZONE>4</ZONE><LIGHT>Shade</LIGHT><PRICE>$4.59</PRICE><AVAILABILITY>050399</AVAILABILITY></PLANT><PLANT><COMMON>Bergamot</COMMON><BOTANICAL>Monarda didyma</BOTANICAL><ZONE>4</ZONE><LIGHT>Shade</LIGHT><PRICE>$7.16</PRICE><AVAILABILITY>042799</AVAILABILITY></PLANT><PLANT><COMMON>Black-Eyed Susan</COMMON><BOTANICAL>Rudbeckia hirta</BOTANICAL><ZONE>Annual</ZONE><LIGHT>Sunny</LIGHT><PRICE>$9.80</PRICE><AVAILABILITY>061899</AVAILABILITY></PLANT><PLANT><COMMON>Buttercup</COMMON><BOTANICAL>Ranunculus</BOTANICAL><ZONE>4</ZONE><LIGHT>Shade</LIGHT><PRICE>$2.57</PRICE><AVAILABILITY>061099</AVAILABILITY></PLANT><PLANT><COMMON>Crowfoot</COMMON><BOTANICAL>Ranunculus</BOTANICAL><ZONE>4</ZONE><LIGHT>Shade</LIGHT><PRICE>$9.34</PRICE><AVAILABILITY>040399</AVAILABILITY></PLANT> </CATALOG>總結(jié)
- 上一篇: JSON定义及解析,JSON文件读写
- 下一篇: tinyxml语法讲解之写xml