不明白“对象需要”错误

时间:2010-10-25 17:42:01

标签: xml asp-classic parent-child parent

我有以下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 个答案:

答案 0 :(得分:2)

当没有更多父节点时,您将获得空值,即Nothing。但是,Nothing是“空对象”,因此它也是一个对象。 IsObject(Nothing)的值为True

检查Nothing而不是检查变量是否包含对象:

while not (parent is Nothing)

答案 1 :(得分:0)

我不是百分百肯定,但是如果IsObject,你可能应该使用/替代?我建议您尝试IsEmpty()IsNull()Is Nothing。后者的使用方式如下:

If Not (myObject Is Nothing)