#xml #c#-4.0
#xml #c #-4.0
Вопрос:
Моя программа считывает значение из xml. Проблема в том, что иногда в xml появляется какое-то значение, а иногда значение не появляется. В это время я получаю object reference is not set an instant of object
сообщение об ошибке. Поэтому я хочу, чтобы, если значение отсутствует в xml, значение, которое я не хочу присваивать какой-либо переменной. Ниже приведен мой код для вашего обзора.
foreach (XElement AddressNode in ActivityLocationNode.Elements("Address"))
{
activitylocationtype.Address.City = AddressNode.Element("City").Value;
activitylocationtype.Address.CountryCode = AddressNode.Element("CountryCode").Value;
activity.ActivityLocation = activitylocationtype;
activitylist.Add(activity);
pakagetype.Activity = activitylist;
pakagetypelist.Add(pakagetype);
shipment.Package = pakagetypelist;
shipmentlist.Add(shipment);
trackresponse.Shipment = shipmentlist; }
XML, который я читаю, приведен ниже
<Address>
<CountryCode>GB</CountryCode>
</Address>
в коде появляется код страны, но сначала я читаю город. Итак, здесь я получаю ошибку. Спасибо вам за ваши комментарии.
Комментарии:
1. Просто проверьте,
AddressNode.Element("City")
равно null или нет перед назначением
Ответ №1:
Вместо доступа к Value
свойству XElement
, вы можете вместо этого привести его к string
, чтобы избежать исключения, например :
//this will give you null because <City> is not found, and no exception
activitylocationtype.Address.City = (string)AddressNode.Element("City");
activitylocationtype.Address.CountryCode = (string)AddressNode.Element("CountryCode");