2011-04-12 83 views
2

我們正在考慮使用xml文件來存儲我們的C#應用​​程序的錯誤代碼。對於以下兩個結構,哪一個更好?xml錯誤代碼文件

<error> 
<code>0x00000001</code> 
<description>Error PIB: Clamp</description> 
<reaction>Display</reaction> 
</error> 

<error code=0x00000001 > 
<description>Error PIB: Clamp</description> 
<reaction>Display</reaction> 
</error> 

或者你更好的建議?

似乎是第二個節省一些空間和easiler通過它查找?

我需要通過查找error code來獲得descriptionreaction字符串。你有一個有效的方式來查找文件?

+0

檢查http://stackoverflow.com/questions/152313/xml-attributes-vs-elements – 2011-04-12 15:31:07

回答

5

如果你是後節省空間技術,我在第一時間:)

個人而言,我更喜歡在第一第二種方法不使用XML建議,但雙方會工作。如果這真的只是查找,我會建議,當你加載文件,你把它轉換爲Dictionary<String, ErrorInformation>或類似的東西。 (你可以做的鍵值的數值類型,而不是,但這需要解析課程的價值。)

的LINQ to XML使得它很容易做這樣的轉換:

XDocument xml = XDocument.Load("errorcodes.xml"); 
var dictionary = xml.Descendants("error") 
        .ToDictionary(element => (string) element.Attribute("code"), 
            element => new ErrorInformation(
             (string) element.Element("description"), 
             (string) element.Element("reaction"))); 
+0

+1,XML!=節省空間。爲節省空間,您可以使用類似JSON對象的東西。與XML相比,JSON存儲的信息少得多。只有,XML在代碼中處理起來要容易得多。如果空間不太大,我真的很喜歡這裏給出的方法。這非常簡單和可以理解 – 2011-04-12 15:33:32

1

一般,如果您想要code來描述該元素,請將其作爲屬性。如果你想讓code成爲一個元素(意味着code也需要屬性或子信息),那麼使它成爲一個孩子。

在代碼中,選擇2是最好的IMO