2012-12-06 1 views
0

존재하지 않는 부모의 하위 요소에 액세스 할 때 Null 참조 예외를 피할 수있는 쉬운 방법이 있습니까? 예를 들어, 나는 다음 쿼리를 가지고 있습니다 :linq to xml을 사용하여 존재하지 않는 부모의 자식을 검색 할 때 null 참조 예외 발생을 피하십시오

  Persons = (from actor in xDoc.Root.Element(imdbns + "Cast").Elements(imdbns + "Actor") 
         select new Person { Name = (string)actor.Element(imdbns + "Person").Element(imdbns + "Name"), Role = "Actor" }).Union(
         from director in xDoc.Root.Element(imdbns + "Directors").Elements(imdbns + "Person") 
         select new Person { Name = (string)director.Element(imdbns + "Name"), Role = "Director" }).Union(
         from writer in xDoc.Root.Descendants(imdbns + "Writer") 
         select new Person { Name = (string)writer.Element(imdbns + "Person").Element(imdbns + "Name"), Role = "Writer" }).ToList() 

그것은 3 개의 요소 (배우, 작가, 감독)를 하나의 개체 Person으로 통합합니다. 문제는 "캐스트"요소가 존재하는지 "디렉터"요소인지 여부를 미리 알 수 없다는 것입니다. 이러한 요소는 액세스해야하는 최종 요소의 부모 요소이며, 존재하지 않는 경우 null 참조 예외가 발생합니다. 그래서 내 질문은 : 쿼리를 읽을 수없는 시퀀스 집합으로 나눌 필요가 "if! = null then then"또는 더 편리한 방법이 있습니까?

감사합니다.

+0

당신의 XML 모양은 어떻습니까? –

답변

0

먼저 확인할 수 있습니다.

의 라인을 따라 뭔가가