检查linq中是否存在xml属性失败

本文关键字:xml 属性 失败 存在 是否 linq 检查 | 更新日期: 2023-09-27 18:24:42

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

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

检查linq中是否存在xml属性失败

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

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