【发布时间】:2010-01-18 15:33:09
【问题描述】:
我有一个 XML 文件,看起来很熟悉:
<root>
<carnumber>12</carnumber>
<carcolor>2</carcolor>
<cartype>5</cartype>
</root>
如您所见,我得到了一些带有值/文本的元素。例如 car 元素可以取 1 到 1000 之间的值。但是 carcolor 元素可以取 1 到 5 之间的值,而 cartype 可以取 1 到 10 之间的值。
重要的是 carcolor 和 cartype 元素的值是有意义的。 carcolor "2" 表示红色,"1" 表示蓝色等等。
所以我需要向用户展示的不是价值观,而是价值观的真正含义。
我发现自己创建了一些类来表示具有有效值的元素,事情变得非常复杂,我不知道这是否是最好的方法。
我的一个朋友建议我使用 XML 序列化,因为我的 XML 文件是静态的。它永远不会改变。
我的问题很简单。我只是想知道你将如何解决这个问题。我的想法包含表示 XML 元素的类,例如这个类中的 cartype 我有一个带有一对的字典。这表示 XML 文件中的值,字符串是该值的含义。我使用了很多 Linq 来导航和编辑值。
再次感谢!
【问题讨论】:
-
另外,我必须让用户有机会编辑这些值,就像你知道的那样,以一种用户友好的方式。这意味着如果用户想要编辑颜色,我必须代表所有有效的颜色。就像一个具有以下值的组合框:“Blue”,“Red”......但我必须再次从中生成一个有效的 XML。
-
XML 文件是这样给出的。我无法对其进行任何更改。
标签: c# xml linq xml-serialization