2013-07-13 4 views
1

Я пытаюсь разобрать локальный XML-файл, который у меня есть в моем решении. Я использую следующий код:XML-анализ с WP8

 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.

Что я делаю неправильно?

+0

кажется один из ваших 'узлов Drink' является неполной (т.е. отсутствуют некоторые узлы, которые предполагали, что это будет иметь). Можете ли вы показать свой XML? –

ответ

1

NullReferenceExceptionскорее всего, вызванный неполной структурой некоторых из Drink узлов. Вы можете избежать этого, когда вы приводите элемент string, в отличие от Fetching контента через .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") 
    }); 
} 
+0

Оказывается, у меня была проблема с XML-файлом, некоторая синтаксическая ошибка, которую я не видел. –