Как использовать переменную для массива объектов?
Мне нужна помощь в создании переменной для хранения 3 телефонных объектов (например, objxmlHomePhone, objxmlCellPhone, objxmlWorkPhone).
Мои 3 объекта заполняются из xml - документа, который я добавил ниже.
Проблема, которую я имею с моим vb-кодом, заключается в том, что когда xml-документ не имеет телефонных элементов, мой вывод показывает пустые элементы. Я не хочу показывать пустые элементы.
Следующая строка кода выполняет обновление и отвечает за отображение элементов. objUpdateParty.Телефоны = {objxmlHomePhone, objxmlCellPhone, objxmlWorkPhone}
Для каждого кода я пытаюсь использовать переменную для 3 телефонных объектов. Я надеялся, что смогу проверить, есть ли у каждого телефонного объекта номер. Если это не так, то обновление кода должно игнорировать этот объект телефона. Вот тут-то мне и нужна помощь.
Вот вывод моего кода. Вы можете видеть, что первый элемент телефона не имеет типа или номера. Я не хочу, чтобы это появилось.
<?xml version="1.0"?> <Phones> <Phone> <Type xsi:nil="true"/> </Phone> <Phone> <Number>223-789-6654</Number> <Type>Cell</Type> </Phone> <Phone> <Number>224-178-2222</Number> <Type>Work</Type> </Phone> </Phones>
Вот мой Xml-документ, который в vb - коде является objXmlPartyNode В этом xml-документе есть два телефонных номера.
<?xml version="1.0" encoding="UTF-8"?> <Phone Op="A" Current="true"> <Type Op="A" Word="CELL">Cell</Type> <Number Op="A">223-789-6654</Number> </Phone> <Phone Op="A" Current="true"> <Type Op="A" Word="WORK">Work</Type> <Number Op="A">224-178-2222</Number> </Phone> <!--<Phone Op="A" Current="true"> <Type Op="A" Word="HOME">Home</Type> <Number Op="A">225-789-6654</Number> </Phone>-->
Что я уже пробовал:
Вот код. Я читаю xml-документ, чтобы получить телефонные номера
Dim objxmlHomePhone As New MMGService.Phone() Dim objxmlCellPhone As New MMGService.Phone() Dim objxmlWorkPhone As New MMGService.Phone() Dim objxmlPhones() As Object = {objxmlHomePhone, objxmlCellPhone, objxmlWorkPhone} Dim objxmlPhoneNode As XmlNode 'Home phone objxmlPhoneNode = objXmlPartyNode.SelectSingleNode("Phone[@Current='true' and Type/@Word='HOME']") If Not objxmlPhoneNode Is Nothing Then objxmlHomePhone.Type = MMGService.PhoneNumberTypes.Home If Not objxmlPhoneNode.SelectSingleNode("Number") Is Nothing Then objxmlHomePhone.Number = objxmlPhoneNode.SelectSingleNode("Number").InnerText End If End IF 'Work phone objxmlPhoneNode = objXmlPartyNode.SelectSingleNode("Phone[@Current='true' and Type/@Word='WORK']") If Not objxmlPhoneNode Is Nothing Then objxmlWorkPhone.Type = MMGService.PhoneNumberTypes.Work If Not objxmlPhoneNode.SelectSingleNode("Number") Is Nothing Then objxmlWorkPhone.Number = objxmlPhoneNode.SelectSingleNode("Number").InnerText End If End If 'Cell phone objxmlPhoneNode = objXmlPartyNode.SelectSingleNode("Phone[@Current='true' and Type/@Word='CELL']") If Not objxmlPhoneNode Is Nothing Then objxmlCellPhone.Type = MMGService.PhoneNumberTypes.Cell If Not objxmlPhoneNode.SelectSingleNode("Number") Is Nothing Then objxmlCellPhone.Number = objxmlPhoneNode.SelectSingleNode("Number").InnerText End If End If For Each objxmlPhone As Object In objxmlPhones If Not objxmlPhones Is Nothing Then 'This is where the update is done. When an object has no phone number, it is still updated i.e still shows up an an empty element. I do not want this to happen objUpdateParty.Phones = {objxmlHomePhone, objxmlCellPhone, objxmlWorkPhone} End If Next