close

如果對XML完全沒有概念的人可以先參考XML格式教學

 

一份真正的XML檔會包含

(1)版本與編碼

以手邊的一份XML檔案為例,定義了版本(version)、編碼(encoding)、是否有外部文件(standalone)

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

 

通常版本與編碼定義會根據所使用的軟體自動產生,

在這裡的版本是1.0,編碼是UTF8,且沒有外部文件。

前後的問號表示「指令」而非資料。

 

(2)資料

所有的資料必須有一個「大資料夾」包住,

個人的習慣會將他命名為根(Root)

「火影忍者 根」的圖片搜尋結果

錯誤

<Folder01>
    Text
<\Folder01>

<Folder02>
    Text
<\Folder02>

<Folder03>
    Text
<\Folder03>

 

正確

<Root>
    <Folder01>
        Text
    <\Folder01>

    <Folder02>
        Text
    <\Folder02>

    <Folder03>
        Text
    <\Folder03>
</Root>

 

所有的資料都必須包含在一個根目錄(Root)底下,然而在XML中通常叫做根節點(Root Node)而非目錄

對根節點來說,所有的內容都是他的子節點(Child Node)

對子節點來說,根節點就是他的父節點(Parent Node)

子節點與父節點是一個相對概念,並非某個絕對層級。

 

一個節點通常包含五個要素

<Root>
    Text
    <\Child Attribute ="I am attribute">
    
    <Child Attribute = "You are attribute">
        Child-Text
    <\Child>
</Root>

 

(1) 名稱(Name)

節點名稱具有大小寫相異性(Case Sensitive),且不能以數字開頭,

(2) 父節點(Parent Node)

除了根節點(Root Node)之外,都具有父節點

(3) 子節點(Child Node)

不同的子節點可以擁有相同的名稱,

一般平台的XML搜尋功能分為第一筆相符(First Match) 或者 全部相符(All Match),

如果用第一筆相符只能找到相同名稱的第一個,

用全部相符則會找到全部擁有相同名稱的節點。

(4) 文字標籤(Text)

用於簡易的文字說明,或者描述內容。

(5) 屬性標籤(Attribute)

用於定義節點屬性,常與程式語言中的Enum結合使用。

 

XML是一種常見的文字儲存格式,易讀好懂,

許多應用程式皆拿XML來作為開啟時的初始化設定檔,

但身為類似資料夾的樹狀結構,對於規劃與分類必須嚴謹,

否則到最後就會像大海撈針,

在海中苦苦尋找,那節點卻在燈火闌珊處...

 

XML發展許久,各開發平台的支援度很高,

有許多平台的設定檔也是走XML格式,

甚至網頁的HTML語言也是由XML變形而來。

 

歸於根本,

XML採用文字儲存,且沒有排序與優化

如果資料量大的情況下,

還是會造成搜尋與讀取延遲,

使用上必須特別注意。

 

 

 

arrow
arrow
    文章標籤
    XML HTML
    全站熱搜

    Vincent 發表在 痞客邦 留言(0) 人氣()