1

我正在尝试解析解决方案中的本地 XML 文件。我正在使用以下代码:

        XDocument xml = XDocument.Load("Vodka.xml");

        IEnumerable<XElement> drinkList = xml.Descendants("Drink");

        DrinkGroup data = new DrinkGroup();

        foreach (XElement drink in drinkList)
        {
            data.Items.Add(new Drinks
            {
                name = drink.Element("Name").Value,
                image = drink.Element("Image").Value,
                description = drink.Element("Description").Value,
                ingredients = drink.Element("Ingredients").Value,
                preperation = drink.Element("Preperation").Value
            });
        }

        return data;

它适用于drinkList 中的第一个元素,然后返回System.NullReferenceException。

我究竟做错了什么?

4

1 回答 1

1

NullReferenceException可能Drink是某些节点结构不完整造成的。您可以在将 element 转换为 时避免它string,而不是通过.Value属性获取内容:

foreach (XElement drink in drinkList)
{
    data.Items.Add(new Drinks
    {
        name = (string) drink.Element("Name"),
        image = (string) drink.Element("Image"),
        description = (string) drink.Element("Description"),
        ingredients = (string) drink.Element("Ingredients"),
        preperation = (string) drink.Element("Preperation")
    });
}
于 2013-07-13T14:27:54.320 回答