这绝对让我难过。我有一个XML文件,它基本上是我的程序将在游戏中使用的项目列表,每个项目都有一个相关的ID,如
<Items>
<Item ID ="1">
<Name>Food</Name>
<Price>1 copper</Price>
</Item>
</Items>
如何编写代码以便我可以使用随机整数解析XML?一旦找到该整数的正确ID,我将从XML文件中获取元素,然后我的游戏将使用它们。
感谢您提供任何帮助。
答案 0 :(得分:1)
使用Linq to Xml,您可以选择ID属性等于整数id
变量的item元素:
var xdoc = XDocument.Load(fileName);
var item= xdoc.Descendants("Item")
.FirstOrDefault(i => (int)i.Attribute("ID") == id);
现在,如果存在具有指定ID的元素(即item not null),您可以将其所有元素值写入Dictionary<string, string>
,其中元素名称为键,元素值为value:
if (item != null)
{
settings = item.Elements()
.ToDictionary(e => e.Name.LocalName, e => (string)e);
}
设置词典的用法:
if (settings.ContainsKey("Name"))
name = settings["Name"]; // if id == 1 then name will be "Food"