又要麻烦大家了,请帮我看看这段ASP代码哪里出问题?
一运行,就提示:Microsoft VBScript 运行时错误 错误 '800a0005'
无效的过程调用或参数: 'objRootlist.appendChild'
/download/addxml.asp,行 82
代码原文如下:
程序代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> 向xml中添加新节点 </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <style> body {font-size:12px;} </style> </HEAD> <BODY> <!--#include file="top.asp"--> <% addok=request("addok") If addok="" Or IsNull(addok) Then %> <form name="form1" method="post" action="?addok=add"> 类别:<input type="text" name="zl" size="30" ><br> 款型:<input type="text" name="bh" size="40"><br> 贴牌价:<input type="text" name="so" size="40"><br> 总数量:<input type="text" name="zsl" size="40"><br> M 数量:<input type="text" name="m" size="40"><br> M 颜色:<input type="text" name="colo1" size="40"><br> L 数量:<input type="text" name="l" size="40"><br> L 颜色:<input type="text" name="colo2" size="40"><br> XL 数量:<input type="text" name="xl" size="40"><br> XL 颜色:<input type="text" name="colo3" size="40"><br> XXL 数量:<input type="text" name="xxl" size="40"><br> XXL 颜色:<input type="text" name="colo4" size="40"><br> <input type="submit" value="提交"> <input type="reset" value="重置"> </form> <% End If If addok="add" then zl=request("zl") bh=request("bh") so=request("so") zsl=request("zsl") m=request("m") colo1=request("colo1") l=request("l") colo2=request("colo2") xl=request("xl") colo3=request("colo3") xxl=request("xxl") colo4=request("colo4") strSourceFile = Server.MapPath("./") & "\product.xml" '获取XML文件的路径这里根据你的虚拟目录不同而不同 Set objXML = Server.CreateObject("Microsoft.XMLDOM") '创建XML对像 objXML.load(strSourceFile) '把XML文件读入内存中 Set objRootlist = objXML.documentElement.selectSingleNode("root") '选取<root>节点 if objRootlist.hasChildNodes then '判断<NewList>是否有子节点(因为如果是每一次<root>是没有子节点的, 如果不加判断在第一次运得时就会报错 id = objRootlist.lastchild.firstchild.text+1 '这里获得将要插入子节点的ID号,其ID号为<root>的最后一个子节点(lastchild)的第一个子节点(firstchild) '的ID号加1(这里我们按照关系型数据库的ID号来递增) else '如是没有字子节点则是第一次留言ID号设为1 id=1 end If brstr=chr(13)&chr(10)&chr(9) XMLnode=brstr&"<list>"&vbnewline & _ "<id>"&id&"</id>"&vbnewline & _ "<zl>"&zl&"</zl>"&vbnewline & _ "<bh>"&bh&"</bh>"&vbnewline & _ "<zsl>"&zsl&"</zsl>"&vbnewline & _ "<m>"&m&"</m>"&vbnewline & _ "<colo1>"&colo1&"</colo1>"&vbnewline & _ "<l>"&l&"</l>"&vbnewline & _ "<colo2>"&colo2&"</colo2>"&vbnewline & _ "<xl>"&xl&"</xl>"&vbnewline & _ "<xcolo3>"&colo3&"</colo3>"&vbnewline & _ "<xxl>"&xxl&"</xxl>"&vbnewline & _ "<colo4>"&colo4&"</colo4>"&vbnewline & _ "<so>"&so&"</so>"&vbnewline & _ "</list>"&vbnewline&vbnewline '根据得到的数据建立XML片段 set objXML2=Server.CreateObject("Microsoft.XMLDOM") '建立一个新XML对像 objXML2.loadXML(XMLnode) '把XML版片段读入内存中 set rootNewNode=objXML2.documentElement '获得objXML2的根节点 objRootlist.appendChild(rootNewNode) '把XML片段插入到test.xml中 objXML.save(strSourceFile) '存储test.xml文件(因为不存储test.xml只在内存中更新了) set objXML=nothing set objXML2=nothing Response.Redirect("index.asp") response.end End If %> </BODY> </HTML>