2011-06-25 133 views
1

我是XML新手,想知道何時應該使用屬性, 以及何時應使用子節點。屬性vs子節點

我的猜測是我應該使用一個屬性,如果我想像索引一樣使用該字段。例如,我目前(爲了讓我的頭部圍繞XML)製作一個程序來保存日誌,所以我有2個主要字段「日期時間」和「文本」 我想也許「日期時間」應該是屬性

+1

可能的重複http://stackoverflow.com/questions/395527/best-practices-when-should-i-use-elements-and-when-should-i-use-attributes – PedroC88

回答

1

關於屬性的主要問題是它們每個元素都是唯一的。這意味着一個屬性不能用多次相同的名稱聲明,所以通常使用它來存儲不應該有多個值的東西是一個好主意。同樣由於語法以及它們在元素標籤中聲明的事實,我發現將它們用於與id等元素有密切關係的東西非常有用。

另一個經驗法則是我不會使用具有ver long值的事物的屬性,因爲它會造成雜亂的讀取。就像你的日誌文本一樣。

對於您的具體問題是我會使用時間戳的屬性並將文本放置在元素標記之間。

關於XML的另一個建議尤其是因爲您剛開始時(如果您尚未這樣做)使用該語言提供的XML對象來創建和編寫XML。它可能會更詳細,然後手動將XML寫入字符串,但它會避免在中途無意中添加非法字符。

例如,如果你是在它創建類似有<一個記錄文本:

<根> <登錄DATATIME =「某個時候」 > 這將打破XML <在那裏。 < /日誌> <根>

此XML文件將被打破。該XML對象會自動跳脫非法值看起來像

<根> <登錄DATATIME =「某個時候」 > 這將打破XML & LT;在那裏。 < /日誌> < /根>

我希望這有助於和好運。

+0

不得不修復標記爲顯示XML標籤:)。 – Rob

0

屬性不能有CData(特殊字符),但節點可以有。 所以,如果你不得不把CData放在屬性中, 這是我在做決定時考慮的一件重要事情。