2014-09-27 2 views
0

У меня есть список «IEnumerable» все те же элементы: «elem1», что я получил отОшибка при проверке наличия атрибута xml в linq?

IEnumerable <XElement> childList = 
        from el in sessionXML.DescendantsAndSelf().Elements("elem1") 
        select el; 

childList:

<elem1 att1= "..." att2= "..."> </elem1> 
<elem1 att1= "..." att2= "..." att3 = "..."> </elem1> 
<elem1 att1> </elem1> 

Не все элементы имеют одни и те же атрибуты. Я пытаюсь проверить наличие att3, если это так, я бы хотел напечатать этот элемент, когда я сделал код ниже, он все равно дает мне ошибку «Object reference not set to a instance of object»:

foreach (XElement e in childList) 
     { 
      //Check if attribute "target" exists 
      if (e.Attribute("att3").Value != null) 
      { 
       Console.writeLine(e); 
      } 
     } 

ответ

1

Проверка .Value или любого другого свойства на null объекта является незаконным:

if (e.Attribute("att3") != null) 
+0

Это было бы эквивалентом исключения нулевого указателя в таких языках, как C право? – jerryh91

 Смежные вопросы

  • Нет связанных вопросов^_^