![]() |
#2
hongshai2008-04-12 14:43
|
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>
<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>