检查ASP经典中是否存在xml节点

问题描述:

对于我正在做的一个项目,我有不同数量的节点,节点名称为nib“number”_title 因此,我使用for循环并在该循环中I' m使用getElementsByTagName来创建节点,但是如果它试图找到一个不存在的节点,它会引发错误。检查ASP经典中是否存在xml节点

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 2010-08-05 18:58:29

我的XML有缺陷。相反,我将把我试图找到的所有节点放到一个节点中,以便我可以使用foreach循环,因为这会更容易。

首先我建议你搞清楚如何使用Visual Studio,因为这将让您的生活轻松了许多做debugging(你可以在调试你的对象) 。

接下来的错误信息的问题是我们不知道哪个“对象”VBScript的意思是......它是指所有表示对象的xml,getElementsByTagName(...)或.item(...)你正在访问。

最后,我还会检查getElementsByTagName返回的length of the NodeList

+0

不幸的是,我无法访问Visual Studio,并且记事本卡住了。我正在改变我的XML布局,所以我可以用foreach代替。感谢您的提示。 – 2010-08-06 08:45:25