检查元素中是否存在特定的属性
本文关键字:属性 存在 元素 是否 检查 | 更新日期: 2023-09-27 18:03:32
我需要检查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;
}
反之:
第一次检查
FlightSegment.Item(f).Attributes["ConnectionInd"] != null
然后FlightSegment.Item(f).Attributes["ConnectionInd"].Value != ""
否则,如果它确实是null,你会得到NullReferenceException,你实际上得到的。
更有效:
var att = FlightSegment.Item(f).Attributes["ConnectionInd"];
if (var != null)
{
string cind = att.Value;
}
应该有一个方法像hasAttribute或类似的东西,你应该使用而不是FlightSegment.Item(f). attributes ["ConnectionInd"]。值,因为如果"ConnectionInd"不存在,你试图从一个空对象中获取"Value",这将导致一个异常。