Member 11403304 Ответов: 1

Как мне перепроверить номер мобильного телефона в моем заявлении if?


Может ли кто-нибудь объяснить мне, как проверить сотовый телефон, используя тот же запрос, который я использовал для проверки домашнего телефона в моем заявлении if?
Если дома не нашли я хочу сделать типа сотового, если что-то не нашел, хочу сделать типа работы, если что-то не нашел, хочу найти типа факс в таком порядке.
Я хочу получить только один тип за раз. Телефон для этого типа должен иметь @Current= 'true'


Что мне нужно изменить, так это следующее утверждение if
if (objxmlPhoneNode.SelectSingleNode ("Тип").InnerText = = 'Ячейка')

так что я могу перепроверить наличие сотового, работы и факса с помощью,
ObjxmlPhoneNode класс XmlNode = objxmlBasePartyNode.SelectSingleNode ("Phone[@Current= 'true' и Type/@Word= 'HOME']");

Я не уверен, как использовать это в моем заявлении if, чтобы проверить наличие мобильного телефона, работы и факса, если дома не было

XmlNode objxmlPhoneNode = objxmlBasePartyNode.SelectSingleNode("Phone[@Current='true' and Type/@Word='HOME']");


Вот мой xml
<?xml version="1.0" encoding="UTF-8"?>
<Party ID="14884325" InternalPartyID="1612739531">
	<Phone Current="true">
		<Type Word="FAX">Fax</Type>
		<Number>999-999-9999</Number>
	</Phone>
	<Phone>
		<Type Word="FAX">Fax</Type>
		<Number>999-999-9999</Number>
	</Phone>
	<Phone Current="true">
		<Type Word="HOME">Home</Type>
		<Number>777-777-7777</Number>
	</Phone>
	<Phone>
		<Type Word="HOME">Home</Type>
		<Number>777-777-7777</Number>
	</Phone>
	<Phone Current="true">
		<Type Word="WORK">Work</Type>
		<Number>111-222-0000</Number>
	</Phone>
	<Phone>
		<Type Word="WORK">Work</Type>
		<Number>111-222-0000</Number>
	</Phone>
		<Phone Current="true">
		<Type Word="CELL">Cell</Type>
		<Number>666-666-6666</Number>
	</Phone>
	<Phone>
		<Type Word="CELL">Cell</Type>
		<Number>666-666-6666</Number>
	</Phone>
</Party>


Что я уже пробовал:

Boolean blnPhoneFound = true;
            XmlNode objxmlPhoneNode = objxmlBasePartyNode.SelectSingleNode("Phone[@Current='true'and Type/@Word='HOME']");
                if (objxmlPhoneNode != null)
                {
                objCaseParty.Phone = new ConservatorService.Phone();

                    objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Home;
                    //blnPhoneFound = true;
                }
                else if (objxmlPhoneNode != null)
                {
                    if (objxmlPhoneNode.SelectSingleNode("Type[@Word='CELL']").InnerText == "Cell")
                    {
                        objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Cell;
                        //blnPhoneFound = true;
                    }
                }
                     if (objxmlPhoneNode != null)
                    {
                        if (objxmlPhoneNode.SelectSingleNode("Type").InnerText == "Work")
                        {
                            objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Work;
                            blnPhoneFound = true;
                        }
                    }
                      if (objxmlPhoneNode != null)
                        {
                            if (objxmlPhoneNode.SelectSingleNode("Type").InnerText == "Fax")
                            {
                                objCaseParty.Phone.Type = ConservatorService.PhoneNumberTypes.Fax;
                                blnPhoneFound = true;
                            }
                            } //Fax
                      if (blnPhoneFound)
                     {
                         if (objxmlPhoneNode.SelectSingleNode("Extension") != null)
                         {
                             string strExtension = objxmlPhoneNode.SelectSingleNode("Extension").InnerText;
                             objCaseParty.Phone.Extention = strExtension;
                         }
                         if (objxmlPhoneNode.SelectSingleNode("Number") != null)
                         {
                             string strNumber = objxmlPhoneNode.SelectSingleNode("Number").InnerText;
                             objCaseParty.Phone.Number = strNumber;
                         }
                     }
                       } //Phone Current 
                   }
                }

F-ES Sitecore

Если мы не знаем, как выглядит xml, мы не можем предложить, как вы можете читать значения из него.

[no name]

"Клетка" - это не то же самое, что " клетка"

1 Ответов

Рейтинг:
11

F-ES Sitecore

XmlNode objxmlCellNode = objxmlBasePartyNode.SelectSingleNode("Phone[@Current='true'and Type/@Word='CELL']");


В вашем коде phonenode содержит узел, который имеет тип, установленный для работы, так что вы никогда не найдете узел, который имеет тип ячейки, вам нужно снова выполнить запрос от родителя. Или просто получите все телефонные узлы в вашем первоначальном запросе и выберите либо рабочий узел, либо сотовый узел.


Member 11403304

Таким образом, xml всегда будет иметь 4 типа телефонов: домашний, сотовый, рабочий и факс. Я хочу всегда получать домашний тип и отображать его номер. Однако если это не существует и или не имеет @Current = 'true', то я хочу получить тип ячейки, если это не существует или не имеет @Current ='true', то я хочу получить тип работы, если это не существует или не имеет @Current ='true', то я хочу получить тип факса.
Поэтому я не уверен, как получить тип в таком порядке, то есть получить тип 1. Дом 2. Если дом не найден, наберите ячейку 3. Если не найдено, получите тип работы 4. Если не найден, получите тип факса. Я отредактировал код, чтобы включить факс и работу

F-ES Sitecore

узел = получить количество работы
if (node = = null)
{
node = получить номер ячейки
if (node = = null)
{
узел = получить номер факса
}
}

Member 11403304

Я не знаю, как заменить мое утверждение if тем, что вы мне дали.

F-ES Sitecore

ObjxmlPhoneNode класс XmlNode = objxmlBasePartyNode.Метод selectsinglenode("телефон[@тока='истинный' и тип/@слово='домой']");
if (objxmlPhoneNode = = null)
{
objxmlPhoneNode = objxmlBasePartyNode.Метод selectsinglenode("телефон[@тока='истинный' и тип/@слово='мобильный']");
}
if (objxmlPhoneNode = = null)
{
objxmlPhoneNode = objxmlBasePartyNode.Метод selectsinglenode("телефон[@тока='истинный' и тип/@слово='факс']");
}

Member 11403304

Спасибо за помощь. Теперь он работает

Member 11403304

И это то, что я не уверен, как сделать в моих утверждениях if. Я знаю, когда выполняется первый оператор if и есть тип HOME, а остальные операторы if пропускаются. Но если тип HOME не найден, я не уверен, как проверить наличие других типов (сотовый, домашний, факс)