您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)XML原理的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
實(shí)例:
<?xml version="1.0" encoding="utf-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
實(shí)例解釋:
第一行是 XML 聲明。它定義 XML 的版本 (1.0) 和所使用的編碼 (ISO-8859-1 = Latin-1/西歐字符集)。
描述文檔的根元素
<note>//根元素的開始 ** </note> //根元素的結(jié)尾
4個(gè)子元素
<to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body>
就這樣XML文檔會(huì)形成一種樹結(jié)構(gòu),如下:
<?xml version="1.0" encoding="utf-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body> <A>George</A> <B>John</B> <C>Reminder</C> </body> </note>
所有 XML 元素都須有關(guān)閉標(biāo)簽
<p>This is a paragraph //錯(cuò) <p>This is a paragraph</p> //對(duì)
XML 標(biāo)簽對(duì)大小寫敏感
<Message>這是錯(cuò)誤的。</message> //錯(cuò) <message>這是正確的。</message> //對(duì)
XML 必須正確地嵌套
<b><i>This text is bold and italic</b></i> //錯(cuò) <b><i>This text is bold and italic</i></b> //對(duì)
XML 的屬性值須加引號(hào)
<note date=08/08/2008> //錯(cuò) <to>George</to> <from>John</from> </note> <note date="08/08/2008"> //對(duì) <to>George</to> <from>John</from> </note>
實(shí)體引用:就是特殊字符的轉(zhuǎn)意。
< < 小于
> > 大于
& & 和號(hào)
' ' 單引號(hào)
" " 引號(hào)
<message>if salary < 1000 then</message>
想要的:
<message>if salary < 1000 then</message>
XML 中的注釋
<!-- This is a comment -->
在 XML 中,空格會(huì)被保留
HTML 會(huì)把多個(gè)連續(xù)的空格字符裁減(合并)為一個(gè):
HTML:Hello my name is David. 輸出:Hello my name is David.
在 XML 中,文檔中的空格不會(huì)被刪節(jié)。
XML 元素
開始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分。如:
<from>John</from>
元素可包含其他元素、文本或者兩者的混合物。元素也可以擁有屬性。如:
<book category="CHILDREN"> //category(屬性) <title>Harry Potter</title> //book的子元素,這個(gè)子元素只有文本內(nèi)容 <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
XML 命名規(guī)則
XML 元素必須遵循以下命名規(guī)則:
名稱可以含字母、數(shù)字以及其他的字符
名稱不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開始
名稱不能以字符 “xml”(或者 XML、Xml)開始
名稱不能包含空格
XML 元素 vs. 屬性
<person sex="female"> //屬性 <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <person> <sex>female</sex> //元素 <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
沒有什么規(guī)矩可以告訴我們什么時(shí)候該使用屬性,而什么時(shí)候該使用子元素,在 XML 中,
您應(yīng)該盡量避免使用屬性。如果信息感覺起來很像數(shù)據(jù),那么請(qǐng)使用子元素吧。
屬性無法包含多重的值(元素可以)
屬性無法描述樹結(jié)構(gòu)(元素可以)
屬性不易擴(kuò)展(為未來的變化)
屬性難以閱讀和維護(hù)
XML 命名空間(XML Namespaces)
XML 命名空間提供避免元素命名沖突的方法。
這個(gè) XML 文檔攜帶著某個(gè)表格中的信息:
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
這個(gè) XML 文檔攜帶有關(guān)桌子的信息(一件家具):
<table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
由于兩個(gè)文檔都包含帶有不同內(nèi)容和定義的 <table> 元素,就會(huì)發(fā)生命名沖突。
使用前綴來避免命名沖突
<h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>
使用命名空間(Namespaces)
<h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table>
此 XML 文檔攜帶著有關(guān)一件家具的信息:
<f:table xmlns:f="http://www.w3school.com.cn/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>
默認(rèn)的命名空間(Default Namespaces)
為元素定義默認(rèn)的命名空間可以讓我們省去在所有的子元素中使用前綴的工作。
<table xmlns="http://www.w3.org/TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
此 XML 文檔攜帶著有關(guān)一件家具的信息:
<table xmlns="http://www.w3school.com.cn/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
命名空間是就近原則的
<?xml version="1.0" encoding="utf-8"?> <root xmlns="dotnet" xmlns:w="wpf"> <!-- xmlns: dotnet --> <a>data in a</a> //默認(rèn)的命名空間 <!-- xmlns: dotnet --> <w:b>data in b</w:b> //w命名空間 <!-- xmlns: wpf --> <c xmlns="silverlight"> <!-- xmlns: silverlight --> <w:d> <!-- xmlns: wpf --> <e>data in e</e> <!-- xmlns: silverlight --> //就近原則 </w:d> </c> </root>
CDATA
術(shù)語 CDATA 指的是不應(yīng)由 XML 解析器進(jìn)行解析的文本數(shù)據(jù)(Unparsed Character Data)。(就是里面的數(shù)據(jù)不進(jìn)行XML解析)
CDATA 部分由 "<![CDATA[" 開始,由 "]]>" 結(jié)束:
<script> <![CDATA[ //開始 function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]> //結(jié)束 </script>
關(guān)于“XML原理的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。