2011-04-12 79 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