溫馨提示×

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

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

XML屬性的代碼詳解

發(fā)布時(shí)間:2020-07-09 13:59:49 來(lái)源:億速云 閱讀:225 作者:Leah 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)XML屬性的代碼詳解,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

XML元素可以在開(kāi)始標(biāo)簽中包含屬性,類似HTML。

屬性 (Attribute) 提供關(guān)于元素的額外信息。

XML屬性

從HTML,你會(huì)回憶起這個(gè):<img src="computer.gif">。"src" 屬性提供有關(guān)<img>元素的額外信息。

在HTML中(以及在XML中),屬性提供有關(guān)元素的額外信息:

<img src="computer.gif">
<a href="demo.asp">

屬性通常提供不屬于數(shù)據(jù)組成部分的信息。在下面的例子中,文件類型與數(shù)據(jù)無(wú)關(guān),但是對(duì)需要處理這個(gè)元素的軟件來(lái)說(shuō)卻很重要:

<file type="gif">computer.gif</file>

XML 屬性必須加引號(hào)

屬性值必須被引號(hào)包圍,不過(guò)單引號(hào)和雙引號(hào)均可使用。比如一個(gè)人的性別,person 標(biāo)簽可以這樣寫:

<person sex="female">

或者這樣也可以:

<person sex='female'>

注釋:如果屬性值本身包含雙引號(hào),那么有必要使用單引號(hào)包圍它,就像這個(gè)例子:

<gangster name='George "Shotgun" Ziegler'>

或者可以使用實(shí)體引用:

<gangster name="George "Shotgun" Ziegler">

XML 元素 vs. 屬性

請(qǐng)看這些例子:

<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

在第一個(gè)例子中,sex 是一個(gè)屬性。在第二個(gè)例子中,sex 則是一個(gè)子元素。兩個(gè)例子均可提供相同的信息。

沒(méi)有什么規(guī)矩可以告訴我們什么時(shí)候該使用屬性,而什么時(shí)候該使用子元素。我的經(jīng)驗(yàn)是在HTML中,屬性用起來(lái)很便利,但是在XML中,您應(yīng)該盡量避免使用屬性。如果信息感覺(jué)起來(lái)很像數(shù)據(jù),那么請(qǐng)使用子元素吧。

我最喜歡的方式

下面的三個(gè)XML文檔包含完全相同的信息:

第一個(gè)例子中使用了 date 屬性:

<note date="08/08/2008">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting this weekend!</body>
</note>

第二個(gè)例子中使用了 date 元素:

<note>
<date>08/08/2008</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting this weekend!</body>
</note>

第三個(gè)例子中使用了擴(kuò)展的 date 元素(這是我的最愛(ài)):

<note>
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting this weekend!</body>
</note>

避免XML屬性?

因使用屬性而引起的一些問(wèn)題:

屬性無(wú)法包含多個(gè)值(子元素可以)

屬性無(wú)法描述樹(shù)結(jié)構(gòu)(子元素可以)

屬性不易擴(kuò)展(為未來(lái)的變化)

屬性難以閱讀和維護(hù)

請(qǐng)盡量使用元素來(lái)描述數(shù)據(jù)。而僅僅使用屬性來(lái)提供與數(shù)據(jù)無(wú)關(guān)的信息。

不要做這樣的蠢事(這不是XML應(yīng)該被使用的方式):

<note day="08" month="08" year="2008"
to="George" from="John" heading="Reminder"
body="Don't forget the meeting this weekend!">
</note>

針對(duì)元數(shù)據(jù)的XML屬性

有時(shí)候會(huì)向元素分配 ID 引用。這些 ID 索引可用于標(biāo)識(shí)XML元素,它起作用的方式與HTML中 ID 屬性是一樣的。這個(gè)例子向我們演示了這種情況:

<messages>
<note id="501">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting this weekend!</body>
</note>
<note id="502">
<to>John</to>
<from>George</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>

上面的 ID 僅僅是一個(gè)標(biāo)識(shí)符,用于標(biāo)識(shí)不同的便簽。它并不是便簽數(shù)據(jù)的組成部分。

在此我們極力向您傳遞的理念是:元數(shù)據(jù)(有關(guān)數(shù)據(jù)的數(shù)據(jù))應(yīng)當(dāng)存儲(chǔ)為屬性,而數(shù)據(jù)本身應(yīng)當(dāng)存儲(chǔ)為元素。

看完上述內(nèi)容,你們對(duì)XML屬性的代碼詳解有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI