我有以下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
。任何人都可以解释运行时抱怨的内容,为什么?
答案 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)