检查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
%>
我的XML有缺陷。相反,我将把我试图找到的所有节点放到一个节点中,以便我可以使用foreach循环,因为这会更容易。
首先我建议你搞清楚如何使用Visual Studio,因为这将让您的生活轻松了许多做debugging(你可以在调试你的对象) 。
接下来的错误信息的问题是我们不知道哪个“对象”VBScript的意思是......它是指所有表示对象的xml,getElementsByTagName(...)或.item(...)你正在访问。
最后,我还会检查getElementsByTagName返回的length of the NodeList。
不幸的是,我无法访问Visual Studio,并且记事本卡住了。我正在改变我的XML布局,所以我可以用foreach代替。感谢您的提示。 – 2010-08-06 08:45:25
什么是xml变量的运行时值?它是如何初始化的? – shahkalpesh 2010-08-05 18:58:29