Не понимаю, ошибка «Требуется объект» - PullRequest
2 голосов
/ 25 октября 2010

У меня есть следующая классическая функция ASP:

function get_children(n)
  dim local_array
  dim parent
  dim path
  if n.hasChildNodes() then
    for each child in n.childNodes
      local_array = array_merge(local_array, get_children(child))
    next
  else
    set parent = n.parentNode
    while isobject(parent)
      path = parent.nodeName & "/" & path
      set parent = parent.parentNode
    wend
    path = path & "/" & get_attr(n, "file")
    set_attr n, "path", path
    local_array = Array(0)
    set local_array(0) = n
  end if
  get_children = local_array
end function

При выполнении этого через узел XML (поступающий из объекта Microsoft.XMLDOM) я получаю ошибку Object required: 'parent' в строке

path = parent.nodeName & "/" & path

и я не могу понять почему.Я проверяю isobject.Кто-нибудь может объяснить, на что жалуется среда выполнения и почему?

Ответы [ 2 ]

2 голосов
/ 25 октября 2010

Если родительских узлов больше нет, вы получите нулевое значение, т. Е. Nothing. Тем не менее, Nothing является «нулевым объектом», так что это также объект. Значение IsObject(Nothing) равно True.

Проверьте Nothing вместо проверки, содержит ли переменная объект:

while not (parent is Nothing)
0 голосов
/ 25 октября 2010

Я не уверен на 100%, но, может быть, вы должны использовать что-то с / вместо, если IsObject?Предлагаю попробовать IsEmpty(), IsNull() или Is Nothing.Последний используется так:

If Not (myObject Is Nothing)
...