使用随机生成的整数解析XML文件

时间:2013-11-21 16:53:38

标签: c# xml linq linq-to-xml

这绝对让我难过。我有一个XML文件,它基本上是我的程序将在游戏中使用的项目列表,每个项目都有一个相关的ID,如

<Items>
<Item ID ="1">
  <Name>Food</Name>
  <Price>1 copper</Price>
 </Item>
</Items>

如何编写代码以便我可以使用随机整数解析XML?一旦找到该整数的正确ID,我将从XML文件中获取元素,然后我的游戏将使用它们。

感谢您提供任何帮助。

1 个答案:

答案 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"