- ·上一篇文章:ASP操作xml--删除xml文件中某个节点
- ·下一篇文章:ASP操作xml--显示xml文件中的所有节点
ASP操作xml--向xml文件中的添加节点
<
!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="
site"
 
size="
30"
 
>
 
 
网 
 
址:<
input 
type="
text"
 
name="
url"
 
size="
40"
>
 
 
<
input 
type="
submit"
 
value="
提交"
>
 
<
input 
type="
reset"
 
value="
重置"
>
 
 
<
/form>
 
<
% 
 
End 
If
 
If 
addok="
add"
 
then
 
 
site=request("
site"
)
 
 
url=request("
url"
)
 
 
strSourceFile 
= 
Server.MapPath("
./"
) 
&
#38
 
"
\test.xml"
&
#39
获取XML文件的路径这里根据你的虚拟目录不同而不同
Set 
objXML 
= 
Server.CreateObject("
Microsoft.XMLDOM"
)
&
#39
创建XML对像
objXML.load(strSourceFile)
&
#39
把XML文件读入内存中
Set 
objRootlist 
= 
objXML.documentElement.selectSingleNode("
root"
)
&
#39
选取<
root>
节点
if 
objRootlist.hasChildNodes 
then
&
#39
判断<
NewList>
是否有子节点(因为如果是每一次<
root>
是没有子节点的, 
如果不加判断在第一次运得时就会报错
id 
= 
objRootlist.lastchild.firstchild.text+1
&
#39
这里获得将要插入子节点的ID号,其ID号为<
root>
的最后一个子节点(lastchild)的第一个子节点(firstchild)
&
#39
的ID号加1(这里我们按照关系型数据库的ID号来递增)
else
&
#39
如是没有字子节点则是第一次留言ID号设为1
id=1
end 
If
brstr=chr(13)&
#38
chr(10)&
#38
chr(9)
XMLnode=brstr&
#38
"
<
list>
"
&
#38
vbnewline 
&
#38
 
_
 
 
 
 
"
<
id>
"
&
#38
id&
#38
"
<
/id>
"
&
#38
vbnewline 
&
#38
 
_
"
<
name>
"
&
#38
site&
#38
"
<
/name>
"
&
#38
vbnewline 
&
#38
 
_
"
<
url>
"
&
#38
url&
#38
"
<
/url>
"
&
#38
vbnewline 
&
#38
 
_
"
<
time>
"
&
#38
Replace(Replace(Now(),"
上午 
"
,"
"
),"
下午 
"
,"
"
)&
#38
"
<
/time>
"
&
#38
vbnewline 
&
#38
 
_
"
<
/list>
"
&
#38
vbnewline&
#38
vbnewline
 
 
 
&
#39
根据得到的数据建立XML片段
set 
objXML2=Server.CreateObject("
Microsoft.XMLDOM"
)
&
#39
建立一个新XML对像
objXML2.loadXML(XMLnode)
&
#39
把XML版片段读入内存中
set 
rootNewNode=objXML2.documentElement
&
#39
获得objXML2的根节点
objRootlist.appendChild(rootNewNode)
&
#39
把XML片段插入到test.xml中
objXML.save(strSourceFile)
&
#39
存储test.xml文件(因为不存储test.xml只在内存中更新了)
set 
objXML=nothing
set 
objXML2=nothing
Response.Redirect("
index.asp"
)
response.end
 
End 
If
 
%>
 
<
/BODY>
<
/HTML>
test.xml中的内容是
<
?xml 
version="
1.0"
 
encoding="
gb2312"
?>
<
site>
 
<
root>
 
 
 
<
list>
 
 
 
 
<
id>
0<
/id>
 
 
 
 
<
name>
新浪<
/name>
 
 
 
 
<
url>
http://www.sina.com.cn<
/url>
 
 
 
 
<
time>
2007-11-1 
10:10:10<
/time>
 
 
<
/list>
 
<
/root>
<
/site>
源码下载地址:http://www.aspprogram.cn/soft.asp?id=33
!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="
site"
 
size="
30"
 
>
 
 
网 
 
址:<
input 
type="
text"
 
name="
url"
 
size="
40"
>
 
 
<
input 
type="
submit"
 
value="
提交"
>
 
<
input 
type="
reset"
 
value="
重置"
>
 
 
<
/form>
 
<
% 
 
End 
If
 
If 
addok="
add"
 
then
 
 
site=request("
site"
)
 
 
url=request("
url"
)
 
 
strSourceFile 
= 
Server.MapPath("
./"
) 
&
#38
 
"
\test.xml"
&
#39
获取XML文件的路径这里根据你的虚拟目录不同而不同
Set 
objXML 
= 
Server.CreateObject("
Microsoft.XMLDOM"
)
&
#39
创建XML对像
objXML.load(strSourceFile)
&
#39
把XML文件读入内存中
Set 
objRootlist 
= 
objXML.documentElement.selectSingleNode("
root"
)
&
#39
选取<
root>
节点
if 
objRootlist.hasChildNodes 
then
&
#39
判断<
NewList>
是否有子节点(因为如果是每一次<
root>
是没有子节点的, 
如果不加判断在第一次运得时就会报错
id 
= 
objRootlist.lastchild.firstchild.text+1
&
#39
这里获得将要插入子节点的ID号,其ID号为<
root>
的最后一个子节点(lastchild)的第一个子节点(firstchild)
&
#39
的ID号加1(这里我们按照关系型数据库的ID号来递增)
else
&
#39
如是没有字子节点则是第一次留言ID号设为1
id=1
end 
If
brstr=chr(13)&
#38
chr(10)&
#38
chr(9)
XMLnode=brstr&
#38
"
<
list>
"
&
#38
vbnewline 
&
#38
 
_
 
 
 
 
"
<
id>
"
&
#38
id&
#38
"
<
/id>
"
&
#38
vbnewline 
&
#38
 
_
"
<
name>
"
&
#38
site&
#38
"
<
/name>
"
&
#38
vbnewline 
&
#38
 
_
"
<
url>
"
&
#38
url&
#38
"
<
/url>
"
&
#38
vbnewline 
&
#38
 
_
"
<
time>
"
&
#38
Replace(Replace(Now(),"
上午 
"
,"
"
),"
下午 
"
,"
"
)&
#38
"
<
/time>
"
&
#38
vbnewline 
&
#38
 
_
"
<
/list>
"
&
#38
vbnewline&
#38
vbnewline
 
 
 
&
#39
根据得到的数据建立XML片段
set 
objXML2=Server.CreateObject("
Microsoft.XMLDOM"
)
&
#39
建立一个新XML对像
objXML2.loadXML(XMLnode)
&
#39
把XML版片段读入内存中
set 
rootNewNode=objXML2.documentElement
&
#39
获得objXML2的根节点
objRootlist.appendChild(rootNewNode)
&
#39
把XML片段插入到test.xml中
objXML.save(strSourceFile)
&
#39
存储test.xml文件(因为不存储test.xml只在内存中更新了)
set 
objXML=nothing
set 
objXML2=nothing
Response.Redirect("
index.asp"
)
response.end
 
End 
If
 
%>
 
<
/BODY>
<
/HTML>
test.xml中的内容是
<
?xml 
version="
1.0"
 
encoding="
gb2312"
?>
<
site>
 
<
root>
 
 
 
<
list>
 
 
 
 
<
id>
0<
/id>
 
 
 
 
<
name>
新浪<
/name>
 
 
 
 
<
url>
http://www.sina.com.cn<
/url>
 
 
 
 
<
time>
2007-11-1 
10:10:10<
/time>
 
 
<
/list>
 
<
/root>
<
/site>
源码下载地址:http://www.aspprogram.cn/soft.asp?id=33
ASP操作xml--向xml文件中的添加节点