2013-03-13 121 views
1

我需要檢查FlightSegment元素中是否存在特定屬性ConnectionInd。 如果存在,我將存儲該值,如果沒有,我將繼續閱讀下一個屬性。檢查元素中是否存在特定屬性

以下是如果它存在:

<FlightSegment ArrivalDateTime="06-16T06:10" ConnectionInd="O" DepartureDateTime="2013-06-16T00:15" SmokingAllowed="false" eTicket="true"> 
    <Destination ... /> 
</FlightSegment> 

這是,如果它不存在:

<FlightSegment ArrivalDateTime="03-27T17:35" DepartureDateTime="2013-03-27T13:30" SmokingAllowed="false" eTicket="true"> 
    <Destination ... /> 
</FlightSegment> 

我與下面的代碼檢查,但是當沒有ConnectionInd,它會拋出一個錯誤說Object reference not set to an instance of an object.

if (FlightSegment.Item(f).Attributes["ConnectionInd"].Value != "" && FlightSegment.Item(f).Attributes["ConnectionInd"] != null) 
{ 
    string conInd = FlightSegment.Item(f).Attributes["ConnectionInd"].Value; 
} 

回答

1

反之亦然:

首先檢查

FlightSegment.Item(f).Attributes["ConnectionInd"] != null 

然後

FlightSegment.Item(f).Attributes["ConnectionInd"].Value != "" 

否則,如果它確實是零,你會得到的NullReferenceException你實際上得到。


更高效:

var att = FlightSegment.Item(f).Attributes["ConnectionInd"]; 
if (var != null) 
{ 
    string cind = att.Value; 
} 
+0

謝謝,現在工作 – ymcCole 2013-03-13 08:33:32

0

應該有一種方法od像hasAttribute或類似的東西,你應該使用而不是FlightSegment.Item(f).Attributes [「ConnectionInd」]。值,因爲如果「ConnectionInd」不存在,你試圖讓「價值」空對象並且會導致異常。