Есть много проблем с вашим размещенным кодом.
Первый
Какой язык вы используете? Кажется, есть стили из VBScript и JScript. Это преимущественно VBScript, поэтому я предполагаю, что именно это вы и хотели использовать повсюду.
Второй
XML-объявление должно быть первыми символами в строке.
То есть:
"<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" & _
не
" <?xml version='1.0' encoding='UTF-8' standalone='yes'?>" & _
Третий
XML с пространствами имен требует объявления xml пространства имен в узле верхнего уровня, который использует пространство имен.
Например, корневой узел.
<hub:notifications>
станет
<hub:notifications xmlns:hub='http://stackoverflow.com'>
Но вы бы заменили URL-адрес stackoverflow на соответствующий вам.
Четвертый
Если вы хотите перебрать дочерние узлы hub:notifications
, вам нужно изменить замедление FOR на:
For Each Node In objXML.selectSingleNode("hub:notifications").childNodes
Пятый
i
не увеличивается в вашем цикле, поэтому вы устанавливаете aryNotificationIDs(1)
для различных значений узлов.
Шестой
Относится к первому. В VBScript нет оператора ++
. И вам не нужны ни i
, ни Count
в цикле For.
Дополнительно
Вам не нужно перебирать узлы, чтобы получить счет. Вы можете использовать селектор xpath и свойство length. Например. objXML.selectNodes("hub:notifications/hub:notificationId").length
Наконец
Я взял ваш код и применил приведенные выше предложения, а также включил в себя часть проверки ошибок, которая проверяет, правильно ли загружен XML. Приведенный ниже код выведет количество узлов hub:notificationId
и перечислит все значения в массиве aryNotificationIDs
. Я удалил другой лишний код.
xmlString = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" & _
" <hub:notifications xmlns:hub='http://stackoverflow.com'>" & _
" <hub:notificationId>728dc361-8b4f-4acc-ad2d-9a63125c5114</hub:notificationId>" & _
" <hub:notificationId>5b7c6989-ee27-422c-bbed-2f2c36136c5b</hub:notificationId>" & _
" <hub:notificationId>67d1fffe-ab3f-43e3-bb03-24926debe2dc</hub:notificationId>" & _
" </hub:notifications>"
Set objXML = Server.CreateObject("Msxml2.DOMDocument")
objXML.LoadXml(xmlString)
If objXML.parseError.errorCode <> 0 Then
Response.Write "<p>Parse Error Reason: " & objXML.parseError.reason & "</p>"
Else
For Each node In objXML.selectSingleNode("hub:notifications").childNodes
ReDim Preserve aryNotificationIDs(i)
aryNotificationIDs(i) = node.text
i = i + 1
Next
Response.Write "<p>Count: " & i & "</p>"
For j = 0 to i - 1
Response.Write "<p>aryNotificationIDs(" & j & ") = " & aryNotificationIDs(j) & "</p>"
Next
End If