ASP操作xml--向xml文件中的添加節(jié)點(diǎn)
2024-09-05 20:55:40
供稿:網(wǎng)友
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 向xml中添加新節(jié)點(diǎn) </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">
網(wǎng)站名:<input type="text" name="site" size="30" >
網(wǎng) 址:<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("./") & "/test.xml"
'獲取XML文件的路徑這里根據(jù)你的虛擬目錄不同而不同
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
'創(chuàng)建XML對(duì)像
objXML.load(strSourceFile)
'把XML文件讀入內(nèi)存中
Set objRootlist = objXML.documentElement.selectSingleNode("root")
'選取<root>節(jié)點(diǎn)
if objRootlist.hasChildNodes then
'判斷<NewList>是否有子節(jié)點(diǎn)(因?yàn)槿绻敲恳淮?lt;root>是沒有子節(jié)點(diǎn)的, 如果不加判斷在第一次運(yùn)得時(shí)就會(huì)報(bào)錯(cuò)
id = objRootlist.lastchild.firstchild.text+1
'這里獲得將要插入子節(jié)點(diǎn)的ID號(hào),其ID號(hào)為<root>的最后一個(gè)子節(jié)點(diǎn)(lastchild)的第一個(gè)子節(jié)點(diǎn)(firstchild)
'的ID號(hào)加1(這里我們按照關(guān)系型數(shù)據(jù)庫的ID號(hào)來遞增)
else
'如是沒有字子節(jié)點(diǎn)則是第一次留言ID號(hào)設(shè)為1
id=1
end If
brstr=chr(13)&chr(10)&chr(9)
XMLnode=brstr&"<list>"&vbnewline & _
"<id>"&id&"</id>"&vbnewline & _
"<name>"&site&"</name>"&vbnewline & _
"<url>"&url&"</url>"&vbnewline & _
"<time>"&Replace(Replace(Now(),"上午 ",""),"下午 ","")&"</time>"&vbnewline & _
"</list>"&vbnewline&vbnewline
'根據(jù)得到的數(shù)據(jù)建立XML片段
set objXML2=Server.CreateObject("Microsoft.XMLDOM")
'建立一個(gè)新XML對(duì)像
objXML2.loadXML(XMLnode)
'把XML版片段讀入內(nèi)存中
set rootNewNode=objXML2.documentElement
'獲得objXML2的根節(jié)點(diǎn)
objRootlist.appendChild(rootNewNode)
'把XML片段插入到test.xml中
objXML.save(strSourceFile)
'存儲(chǔ)test.xml文件(因?yàn)椴淮鎯?chǔ)test.xml只在內(nèi)存中更新了)
set objXML=nothing
set objXML2=nothing
Response.Redirect("index.asp")
response.end
End If
%>
</BODY>
</HTML>
test.xml中的內(nèi)容是
<?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>