Как проверить, содержит ли XML элемент при использовании LINQ to XML?

Учитывая эту структуру:

 <root>
     <user>
           <userName>user1</userName>
           <userImageLocation>/user1.png</userImageLocation>
     </user>
     <user>
           <userName>user2</userName>
     </user>
 </root>

public class User
{
    public string UserName {get; set; }
    public string UserImageLocation {get; set; }
}

Я использую LINQ to XML для получения данных из файла XML, например:

XDocument document = XDocument.Parse(xmlFile);
List<User> listOfUsers =  
(from user in document.Descendants("user")
 select new User {
    UserName = user.Element("userName"),
    UserImageLocation = user.Element("userImageLocation"),
 }
).ToList<User>();

Моя проблема в том, что не все пользовательские элементы содержат userImageLocation, и при попытке прочитать userImageLocation, это вызывает исключение.

Как я могу проверить, существует ли элемент XML, и прочитать его, если он существует?

5
задан eflles 29 November 2010 в 08:10
поделиться