2012-12-24 33 views
0

在我的XML文件,我想檢查我已經和我的XML文件中元件片如何檢查是否一個XML文件中包含使用LINQ to XML

我試試這個代碼,但如果它不給我Null Reference Exception特定元素髮現一個設備元素

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

回答

1

。您可以在檢查下一個元素之前檢查它。

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

您的代碼應該工作。我認爲你的xml中沒有元素Settings。所以,只要驗證它是否想獲得它的元素依舊存在:如果你得到一個NRE那麼你doc.Element("Settings")是空

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