首頁 > 後端開發 > XML/RSS教程 > 詳細介紹XML中的屬性學習方法

詳細介紹XML中的屬性學習方法

黄舟
發布: 2017-03-10 19:52:04
原創
1789 人瀏覽過

這篇文章主要介紹了XML中的屬性學習教程,包括使用屬性將資料儲存在子元素中的例子,需要的朋友可以參考下

#屬性是 XML 元素的一部分。一個元素可以有多個唯一屬性。屬性提供了 XML 元素的更多資​​訊。更準確地說,它們定義了元素的屬性(property)。 XML 屬性總是_名-值_對。

語法
XML 屬性語法如下:

<element-name attribute1 attribute2 >
....content..   
</element-name>
登入後複製

其中attribute1 與attribute2 有下列形式:

name = "value"
登入後複製

value 必須使用雙引號(" ")或單引號(' ')包裹。這裡 attribute1 和 attribute2 都是唯一的屬性標籤。

屬性被用來為元素添加一個唯一標籤,分類標籤,添加布林值屬性或關聯一些字串資料。下面的範例示範如何使用屬性:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE garden [   
    <!ELEMENT garden (plants)*>
    <!ELEMENT plants (#PCDATA)>
    <!ATTLIST plants category CDATA #REQUIRED>
]>
<garden>
<plants category="flowers" />
<plants category="shrubs">
</plants>
</garden>
登入後複製

屬性被用來區分同名元素。當我們不希望為每種情況都建立一個新元素時。我們可以使用屬性來添加更多的細節以區分兩個或多個類似的元素。

在上面的例子中,我們透過包含 category 屬性分類了植物,並且給每個元素分配了不同的值。因此我們就有了兩個 plants 類別,一個是 flowers,另一個是 color。這樣我們都得到了兩個有不同屬性的 plants 元素。

你也可以看到我們在 XML 的開頭定義了這個屬性。

屬性類型
下表列出了屬性的類型:

屬性類型描述
StringType接受字串值作為值。 CDATA 是一個 StringType。 CDATA 也是字元資料。這也意味著任何非標記字元都是合法的屬性。
TokenizedType

這是一個限制型別。語法中指出的有效性約束會在屬性值規範化之後套用。以下是 TokenizedType 屬性:

  • ID:用來指定元素是唯一的。

  • IDREF:用來引用一個ID,ID命名了另一個元素。

  • IDREFS:用來引用一個元素的所有 IDs。

  • ENTITY:指示屬性將表示文件中的一個外部實體。

  • ENTITYS:指示屬性將表示文件中的一個外部實體。

  • NMTOKEN:類似限制哪些資料可以是屬性一部份的CDATA。

  • NMTOKENS:類似限制哪些資料可以是屬性一部份的CDATA。

EnumeratedType

#在它的宣告中包含一個預先定義的值清單。在這裡,它必須分配一個值。有兩種類型的枚舉屬性:

  • NotationType:它聲明元素在 XML 文件的某些地方將被引用為 NOTATION 聲明。

  • Enumeration:枚舉允許我們定義一個特定值列表,屬性值必須與之匹配。


元素屬性規則
以下是定義屬性需要遵循的規則:

同一起始標籤或空元素標籤中屬性名稱只能出現一次。
屬性必須使用屬性屬性清單聲明(Attribute-List Declaration)定義在文件類型定義(DTD)中。
屬性值中不能直接或間接引用包含外部實體。
屬性值中被直接或間接提及的任何實體的替代文字都不能包含小於號(<)。

將資料儲存在子元素中
一個案例中使用了日期屬性:

<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>

<heading>Reminder</heading>
<body>Don&#39;t forget me this weekend!</body>
</note>
登入後複製

第二個案例中使用了日期元素:

<note>
<date>12/11/2002</date>

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don&#39;t forget me this weekend!</body>
</note>
登入後複製

第三個案例中使用了擴充日期元素(這是我們常用的方法):

<note>
<date>
  <day>12</day>
  <month>11</month>

  <year>2002</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>

<body>Don&#39;t forget me this weekend!</body>
</note>
登入後複製


以上是詳細介紹XML中的屬性學習方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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