C# 如何使用linq to xml检查xml文件是否包含特定元素

C# 如何使用linq to xml检查xml文件是否包含特定元素,c#,xml,exception,linq-to-xml,C#,Xml,Exception,Linq To Xml,在我的XML文件中,我想检查我的XML文件中是否有和设备元素 我尝试使用此代码,但如果未找到设备元素,则会给出空引用异常 public bool HaveAnyDevice() { XDocument doc = XDocument.Load(path); return !doc.Element("Settings").Elements("Device").Any(); } 你的代码应该可以工作。我认为xml中没有元素设置。因此,在尝试获取其元素之前,只需验证它是否存在: p

在我的XML文件中,我想检查我的XML文件中是否有和设备元素

我尝试使用此代码,但如果未找到设备元素,则会给出
空引用异常

public bool HaveAnyDevice()
{
    XDocument doc = XDocument.Load(path);
    return !doc.Element("Settings").Elements("Device").Any();
}

你的代码应该可以工作。我认为xml中没有元素
设置。因此,在尝试获取其元素之前,只需验证它是否存在:

 public bool HaveAnyDevice()
 {
     XDocument doc = XDocument.Load(path);
     var settings = doc.Element("Settings");
     return (settings != null) && settings.Elements("Device").Any();
 }

如果您正在获取NRE,则您的
doc.Element(“设置”)
为空。您可以在检查下一个元素之前检查它

return doc.Element("Settings") != null && 
       doc.Element("Settings").Elements("Device").Any();