在我正在使用的应用程序中,允许用户在XML文件中存储许多分为不同类别的设置。
XML看起来像
<settings>
<setting2>
<setting3>
<value1>foo</value1>
<value2>bar</value2>
</setting3>
<value3>A list of strings</value3>
</setting2>
<setting4>
<value4>An integer</value4>
</setting4>
</settings>
我很困惑的是如何最好地构造包含这些信息的类,我开始做一个包含类别和值列表的递归类,现在我记得Java中有一个树集合类这样的东西会是最好的解决方案吗? 你们推荐什么?
答案 0 :(得分:2)
为什么不将整个XML文件加载到XPathDocument中?它易于使用且速度非常快。
您可以像这样访问各个设置:
XPathDocument xmldoc = new XPathDocument(settingsFile);
XPathNavigator nav = xmldoc.CreateNavigator();
foreach (XPathNavigator node in nav.Select("settings/setting2/setting3"))
{
...
}
答案 1 :(得分:1)
我会支持更多的OO方法。
public abstract class SettingAbstract
{
public abstract List<Setting> Children {get;set;}
public abstract List<object> Values {get;set}
public XmlNode SaveMe();
}
并在针对每种设置类型具体实施后
public Setting2 : SettingAbstract
{
//concrete implementation
}
public Setting3 : SettingAbstract
{
//concrete implementation
}
......
......
像这样。