溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

XML原理的示例分析

發(fā)布時(shí)間:2021-09-17 13:50:37 來源:億速云 閱讀:96 作者:小新 欄目:編程語言

這篇文章將為大家詳細(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)意。
&lt; < 小于
&gt; > 大于
&amp; & 和號(hào)
&apos; ' 單引號(hào)
&quot; " 引號(hào)

<message>if salary &lt; 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)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

xml
AI