проверка наличия узла xml в ASP Classic - PullRequest
0 голосов
/ 05 августа 2010

Для проекта, который я делаю, у меня есть различное количество узлов с именами узлов nib "number" _title. Поэтому я использую цикл for, и в этом цикле я использую getElementsByTagName, чтобы получить узел, но он приноситошибка, если он пытается найти узел, которого там нет.

Microsoft VBScript runtime (0x800A01A8) Требуемый объект: 'xml.getElementsByTagName (...). item (...)' / newsite / eg/eg.asp, строка 46

Итак, как мне проверить, есть ли там узлы, а затем записать их, если это так?

Мой код ASP выглядит следующим образом:

<% 
Dim i
Dim objTest
For i = 1 to 3
Set objTest = xml.getElementsByTagName("nib"&i&"_title")
if Not (objTest Is Nothing)  Then
 Response.Write("<li><a style=""text-decoration: none; color:white;"" href=""#nib"&i&""">"&xml.getElementsByTagName("nib"&i&"_title").item(0).text&"</a></li>")
End If
Next
%>

Ответы [ 2 ]

0 голосов
/ 06 августа 2010

Мой XML был ошибочным.Вместо этого я собираюсь поместить все узлы, которые я пытался найти, в узел, чтобы я мог использовать цикл foreach, так как это будет проще.

0 голосов
/ 05 августа 2010

Сначала я бы посоветовал выяснить, как выполнить отладку с помощью Visual Studio, поскольку это значительно упростит вашу жизнь (вы можете проверять свои объекты во время отладки).

Далеепроблема с сообщением об ошибке заключается в том, что мы не знаем, что означает «объект» VBScript ... означает ли он xml, getElementsByTagName (...) или .item (...), которые представляют все объекты, к которым вы обращаетесь.

Наконец, я бы также проверил длину NodeList , возвращаемого getElementsByTagName.

...