2010-08-05 5 views
0

Для проекта, который я выполняю, у меня есть множество узлов с именами узлов nib «number» _title Итак, я использую цикл for и внутри этого цикла. m используя getElementsByTagName для узла, но он вызывает ошибку, если пытается найти узел, который там не существует.проверка наличия узла xml в ASP Classic

Microsoft VBScript выполнения (0x800A01A8) Требуется объект: 'xml.getElementsByTagName (...) товар (...)' /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 
%> 
+0

Что такое текущее значение переменной xml? как он инициализируется? – shahkalpesh

ответ

0

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

0

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

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

Наконец, я бы проверил length of the NodeList, полученный методом getElementsByTagName.

+0

К несчастью, у меня нет доступа к Visual Studio, и я застрял в блокноте. Я меняю свой XML-макет, чтобы вместо этого использовать foreach. Спасибо за ваши советы. –