asp添加、刪除、修改xml文件中的節(jié)點(diǎn)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
asp添加、刪除、修改xml文件中的節(jié)點(diǎn)
1.ASP顯示xml文件中的所有節(jié)點(diǎn) 2.ASP向xml文件中的添加節(jié)點(diǎn) 3.ASP刪除xml文件中某個(gè)節(jié)點(diǎn) 4.使用asp修改xml中的節(jié)點(diǎn) 1.ASP操作xml--顯示xml文件中的所有節(jié)點(diǎn) 通常是利用數(shù)據(jù)庫(kù)來保存數(shù)據(jù),但也可以使用xml文件來保存數(shù)據(jù)。假設(shè)xml文件的內(nèi)容是: 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> <list> <id>1</id> <name>google</name> <url>http://www.google.cn</url> <time>2007-11-2 11:11:11</time> </list> </root> </site> 用來顯示xml中的內(nèi)容的asp文件 index.asp <style> body {} </style> <% strSourceFile = Server.MapPath("./") & "\test.xml" '獲取XML文件的路徑這里根據(jù)你的虛擬目錄不同而不同 Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM") '以自由線程創(chuàng)建一個(gè)XML對(duì)像 objXML.load(strSourceFile)'把XML文件讀入內(nèi)存 Set objRootsite = objXML.documentElement.selectSingleNode("root") '選取root節(jié)點(diǎn) num=objRootsite.childNodes.length-1 For i=0 To num response.write "網(wǎng)站名:"&objRootsite.childNodes.item(i).childNodes.item(1).text&" <a href=""javascript:delxml("&objRootsite.childNodes.item(i).childNodes.item(0).text&")"">刪除</a> <a href=""editxml.asp?id="&objRootsite.childNodes.item(i).childNodes.item(0).text&""">修改</a> " response.write "網(wǎng)址:"&objRootsite.childNodes.item(i).childNodes.item(2).text&" " response.write "添加時(shí)間:"&objRootsite.childNodes.item(i).childNodes.item(3).text&" " next %> <script> function delxml(id) { if(!confirm("確定要?jiǎng)h除嗎?")) return false; location.href='delxml.asp?id='+id; } </script> 注意:index.asp要與test.xml文件放在同一目錄下。 2.ASP操作xml--向xml文件中的添加節(jié)點(diǎn) <!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 {} </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ù)庫(kù)的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> 3.ASP操作xml--刪除xml文件中某個(gè)節(jié)點(diǎn) detail.asp?id=157這個(gè)頁(yè)面用來顯示xml文件中的所有節(jié)點(diǎn),在每個(gè)節(jié)點(diǎn)旁邊有刪除和編輯兩個(gè)連接,其中刪除的代碼是: <% id=request("id") if IsNumeric(id)=false or isNull(id) then response.write ("參數(shù)不正確,請(qǐng)返回!") response.end end if 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") set rootOldNode=objRootlist.childNodes.item(id) objRootlist.RemoveChild rootOldNode '刪除節(jié)點(diǎn) 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 %> 4.ASP操作xml--修改xml文件中的節(jié)點(diǎn) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> 修改xml內(nèi)容 </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <!--#include file="top.asp"--> <% id=request("id") if IsNumeric(id)=false or isNull(id) then response.write ("參數(shù)不正確,請(qǐng)返回!") response.end end if addok=request("addok") If addok="" Or IsNull(addok) then strSourceFile = Server.MapPath("./") & "\test.xml" '獲取XML文件的路徑這里根據(jù)你的虛擬目錄不同而不同 Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM") '以自由線程創(chuàng)建一個(gè)XML對(duì)像 objXML.load(strSourceFile)'把XML文件讀入內(nèi)存 Set objRootsite = objXML.documentElement.selectSingleNode("root") id=objRootsite.childNodes.item(id).childNodes.item(0).text site=objRootsite.childNodes.item(id).childNodes.item(1).text url=objRootsite.childNodes.item(id).childNodes.item(2).text %> <form name="form1" method="post" action="?addok=edit&id=<%=id%>"> 網(wǎng)站名:<input type="text" name="site" value="<%=site%>" size="30"> 網(wǎng) 址:<input type="text" name="url" value="<%=url%>" size="40"> <input type="submit" value="修改"> <input type="reset" value="重置"> </form> <% End If If addok="edit" 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") set rootOldNode=objRootlist.childNodes.item(id) 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.ReplaceChild rootNewNode,rootOldNode '修改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> 該文章在 2011/12/14 22:52:28 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |