0
public void AssignSkillFromXml(string xmlCharID, string skillNodeDir)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"/home/holland/code/svn/chronos-/trunk/chronos/Lib/XmlFiles/Characters.xml");
XmlNode node = doc.SelectSingleNode("Character/"+xmlCharID+"/Skills/"+skillNodeDir+"/text()");
foreach(KeyValuePair<Skill, int> entry in skills)
{
bool nodeEqualsKey =
(node.Name.ToString() == entry.Key.ToString());
Console.WriteLine(entry.Key);
if (nodeEqualsKey)
{
int val;
int.TryParse(node.Value, out val);
skills[entry.Key] = val;
Console.WriteLine(val);
}
}
}
如圖所示,我有一個方法,它被設計爲從xml節點分配一個值。該節點的名稱應該作爲字符串傳遞,並通過XmlNode指定的目錄進行訪問。獲取XML節點的字符串表示形式
從那裏,一個foreach循環遍歷字典,比較節點的名稱和字典的鍵,這恰好是一個枚舉。這將工作的唯一方法是如果枚舉可以被解析爲一個字符串,並與節點的名稱進行比較。我想用skillNodeDir來比較技能和枚舉,但這不是很安全,並且更容易出現人爲錯誤。
是否有替代方案?