没有检查linq中是否存在xml属性?

时间:2014-09-27 17:10:39

标签: c# xml linq xelement

我有一个" IEnumerable"的列表所有相同的元素:" elem1",我得到的

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的存在,如果是的话,我想打印这个元素,当我在代码下面做的时候,它仍然给我一个&#34;对象引用没有设置为一个实例一个对象&#34;错误:

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

1 个答案:

答案 0 :(得分:1)

检查.Value对象或null对象上的任何其他属性是非法的:

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