XML開發基礎-XML屬性的程式碼詳解

黄舟
發布: 2017-03-25 17:05:03
原創
1595 人瀏覽過

XML元素可以在開始標籤中包含屬性,類似HTML。

屬性 (Attribute) 提供關於元素的額外資訊。

XML屬性

從HTML,你會回想起這個:。 "src" 屬性提供有關元素的額外資訊。

在HTML中(以及在XML中),屬性提供有關元素的額外資訊:

<img src="computer.gif">
<a href="demo.asp">
登入後複製

屬性通常提供不屬於資料組成部分的資訊。在下面的例子中,檔案類型與資料無關,但是對需要處理這個元素的軟體來說卻很重要:

<file type="gif">computer.gif</file>
登入後複製

XML 屬性必須加引號

屬性值必須被引號包圍,不過單引號和雙引號均可使用。例如一個人的性別,person 標籤可以這樣寫:

<person sex="female">
登入後複製

或這樣也可以:

<person sex=&#39;female&#39;>
登入後複製

註解:如果屬性值本身包含雙引號,那麼有必要使用單引號包圍它,就像這個例子:

<gangster name=&#39;George "Shotgun" Ziegler&#39;>
登入後複製

或可以使用實體引用

<gangster name="George "Shotgun" Ziegler">
登入後複製

XML 元素vs. 屬性

請看這些例子:

<person sex="female">
Anna
Smith


female
Anna
Smith
登入後複製

在第一個例子中,sex 是一個屬性。在第二個例子中,sex 則是一個子元素。兩個例子均可提供相同的資訊。

沒有什麼規矩可以告訴我們什麼時候該使用屬性,而什麼時候該使用子元素。我的經驗是在HTML中,屬性使用起來很便利,但在XML中,您應該盡量避免使用屬性。如果資訊感覺起來很像數據,那麼請使用子元素吧。

我最喜歡的方式

下面的三個XML文件包含完全相同的資訊:

第一個範例中使用了date 屬性:

<note date="08/08/2008">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting this weekend!</body>
</note>
登入後複製

第二個範例中使用了date 元素:

<note>
<date>08/08/2008</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting this weekend!</body>
</note>
登入後複製

第三個範例中使用了擴充的date 元素(這是我的最愛):

<note>
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting this weekend!</body>
</note>
登入後複製

避免XML屬性?

因使用屬性而引起的一些問題:

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

屬性無法描述樹狀結構(子元素可以)

屬性不易擴展(為未來的變化)

屬性難以閱讀和維護

請盡量使用元素來描述資料。而僅使用屬性來提供與資料無關的資訊。

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

<note day="08" month="08" year="2008"
to="George" from="John" heading="Reminder"
body="Don&#39;t forget the meeting this weekend!">
</note>
登入後複製

針對元資料的XML屬性

有時候會指派 ID 參考元素。這些 ID 索引可用來識別XML元素,它運作的方式與HTML中 ID 屬性是一樣的。這個例子向我們演示了這種情況:

<messages>
<note id="501">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;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 只是一個標識符,用於標識不同的便簽。它並不是便籤資料的組成部分。

在此我們極力向您傳遞的理念是:元資料(有關資料的資料)應儲存為屬性,而資料本身應儲存為元素。

以上是XML開發基礎-XML屬性的程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板