Member 11403304 Ответов: 1

Как использовать оператор if для проверки наличия XML-элементов и добавления условий?


У меня есть xml-документ, в котором я хочу использовать оператор if для задания условий, чтобы пользователь делал то, что указано в этом условии.
Условия:
1. Если phoneInternationDirectDialID присутствует, он должен быть 011 или ничего
2. Если присутствует TelephoneCountryCodeID, то он должен быть равен 1 или ничего
3. TelephoneAreaCodeID должен быть включен и должен быть 3-значным - числовым
4. TelephoneExchangeID должен быть включен и должен иметь 3 числовые цифры
5. TelephoneSubscriberID должен быть включен и иметь 4 числовых цифры.

Как мне написать заявление if, чтобы проверить и обеспечить соблюдение этих условий? Заранее спасибо.

Мой xml-документ
Этот xml-документ находится в объекте (vb.net) objXMLInputDoc
<phoneNumber>
	<phoneInternationDirectDialID>612</phoneInternationDirectDialID><!--has to be 011 or nothing-->
	<phoneCountryCodeID>+93</phoneCountryCodeID><!--has to be 1 or nothing-->
	<phoneAreaCodeID>780</phoneAreaCodeID><!--has to be included and 3 digits-->
	<phoneExchangeID>347</phoneExchangeID><!--has to be included and 3 digits-->
	<phoneSubscriberID>8701</phoneSubscriberID><!--Has to be included and 4 digits-->
</phoneNumber>


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

Я хочу использовать подобные утверждения if, но не знаю, как их закончить.
'If phone number provided check for valid area code, TelephoneExchangeID and TelephoneSubscriberID
        'Check if TelephoneInternationDirectDialID and it must be 011
 If Not objXMLInputDoc.DocumentElement.SelectSingleNode("TelephoneNumber") Is Nothing Then
   'Add conditions here
 End If

Jim Meadors

Непонятно, что вы подразумеваете под "не знаете, как его закончить". Просто добавьте код для того, что вы хотите запустить внутри оператора If.

Member 11403304

Я имею в виду, как я могу убедиться, что пользователь может ввести только 1 числовую цифру для PhoneCountryCodeID или оставить ее пустой. Убедитесь, что пользователь must должен ввести 3 числовые цифры для PhoneAreasCode

1 Ответов

Рейтинг:
2

Maciej Los

Ты на правильном пути! Метод selectsinglenode[^] это правильный метод, чтобы получить один узел XmlNode[^].

Примечание: вы используете неправильное имя узла. Нет TelephoneNumber, но phoneNumber.

Если вы хотите сделать несколько сравнений, вы должны сначала проверить, не является ли XmlNode ничем, а если нет, то проверить его Ценность[^].

Dim n As XmlNode = objXMLInputDoc.DocumentElement.SelectSingleNode("phoneInternationDirectDialID")
If n IsNot Nothing Then
    If n.Value = "011" Then
        'here your logic
    End If
End If


Точно так же вы должны сделать и остальные ваши сравнения...


Wendelius

Хороший совет!

Maciej Los

Спасибо, Мика.