2013-09-28 5 views
0

내 C# 프로그램에서 xml 파일의 car 데이터를 car 객체에로드하고 있습니다.누락 된 int 값 xml 요소 확인

이 내 XML 파일입니다 : 두 번째 자동차 항목은 ID가없는

<Car> 
    <CarID>1</CarID> 
    <CarName>Honda</CarName> 
    <CarColor>Blue</CarColor> 
    </Car> 
    <Car> 
    <CarName>Ford</CarName> 
    <CarColor>Yellow</CarColor> 
    </Car> 
    <Car> 
    <CarID>3</CarID> 
    <CarName>BMW</CarName> 
    <CarColor>Green</CarColor> 
    </Car> 

참고. 그래서 null 예외를 피하기 위해 이것을 검사해야합니다.

내가 이렇게 내 C# 코드에서 XML 데이터를로드 : 나는 문자열 데이터의 경우,이 주위에 얻을 수있는 또 다른 질문에 읽은

 List<Car> Cars = 
(
    from el in XDocument.Load("XML_Files/cars.xml").Root.Elements("Car") 
    select new Car 
    { 
     CarID = (int)el.Element("CarID"), 
     CarName = (string)el.Element("CarName"), 
     CarColor = (string)el.Element("CarColor") 
    }).ToList(); 

, 우리는이 대체 :

CarName = (string)el.Element("CarName") 
이와

: 문자열 값을 위해 잘 작동하지만 내가 무엇을 알아낼 수 없습니다 것은이 리터를 적용하는 방법입니다

CarName = ((string)el.Element("CarName") != null) ? (string)el.Element("CarName") : string.Empty 

int 치의 경우는 ogic.

CarID = (int)el.Element("CarID") 

가 null 값을 테스트하려면 :

그래서 내가 어떻게이 줄을 수정하는 방법은 무엇입니까?

나는이 방법을 시도했지만, 그것은 작동하지 않습니다

CarID = ((int)el.Element("CarID") >= 0) ? Convert.ToInt32(el.Element("CarID").Value) : 0 

어떤 제안?

답변

1

두 가지 예에서 두 가지 근본적으로 다른 검사를 수행하고 있습니다. 예에서 요소가 null인지 확인합니다. int 예제에서는 정수 값을 확인하는 것으로 바로 이동한다고 가정합니다. 먼저 string 예와 같이 null이 아닌지 확인하십시오.

CarID = (el.Element("CarID") != null) ? Convert.ToInt32(el.Element("CarID").Value) : 0; 
+0

감사! – Zolt