2014-09-27 75 views
0

我有「的IEnumerable」所有相同元素的列表:「elem1」,我得到的無法檢查linq中是否存在xml屬性?

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的存在,如果是這樣,我想打印這個元素,當我做下面的代碼,它仍然給我一個「對象引用未設置爲對象的實例」錯誤:

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

回答

1

一個null對象檢查.Value或任何其他財產是非法的:

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

這將是一個空指針異常的,如C語言的權利等同? – jerryh91 2014-09-27 17:46:16