分享

asp添加、删除、修改xml文件中的节点

 icecity1306 2015-08-28

asp添加、删除、修改xml文件中的节点

1.ASP显示xml文件中的所有节点

2.ASP向xml文件中的添加节点

3.ASP删除xml文件中某个节点

4.使用asp修改xml中的节点

1.ASP操作xml--显示xml文件中的所有节点

通常是利用数据库来保存数据,但也可以使用xml文件来保存数据。假设xml文件的内容是:

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中的内容的asp文件

index.asp

<style>

body {font-size:12px;}

</style>

<%

strSourceFile = Server.MapPath("./") & "\test.xml"

''获取XML文件的路径这里根据你的虚拟目录不同而不同

Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")

''以自由线程创建一个XML对像

objXML.load(strSourceFile)''把XML文件读入内存

Set objRootsite = objXML.documentElement.selectSingleNode("root")

''选取root节点

num=objRootsite.childNodes.length-1

For i=0 To num

response.write "网站名:"&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 "网址:"&objRootsite.childNodes.item(i).childNodes.item(2).text&"

"

response.write "添加时间:"&objRootsite.childNodes.item(i).childNodes.item(3).text&"

"

next

%>

<script>

function delxml(id)

{

if(!confirm("确定要删除吗?")) return false;

location.href=''delxml.asp?id=''+id;

}

</script>

注意:index.asp要与test.xml文件放在同一目录下。

2.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("./") & "\test.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 & _

"<name>"&site&"</name>"&vbnewline & _

"<url>"&url&"</url>"&vbnewline & _

"<time>"&Replace(Replace(Now(),"上午 ",""),"下午 ","")&"</time>"&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>

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>

3.ASP操作xml--删除xml文件中某个节点

detail.asp?id=157这个页面用来显示xml文件中的所有节点,在每个节点旁边有删除和编辑两个连接,其中删除的代码是:

<%

id=request("id")

if IsNumeric(id)=false or isNull(id) then

response.write ("参数不正确,请返回!")

response.end

end if

strSourceFile = Server.MapPath("./") & "\test.xml"

''获取XML文件的路径这里根据你的虚拟目录不同而不同

Set objXML = Server.CreateObject("Microsoft.XMLDOM")

''创建XML对像

objXML.load(strSourceFile)

''把XML文件读入内存中

Set objRootlist = objXML.documentElement.selectSingleNode("root")

set rootOldNode=objRootlist.childNodes.item(id)

objRootlist.RemoveChild rootOldNode

''删除节点

objXML.save(strSourceFile)

''存储test.xml文件(因为不存储test.xml只在内存中更新了)

set objXML=Nothing

set objXML2=Nothing

Response.Redirect("index.asp")

response.end

%>

4.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="">

</HEAD>

<BODY>

<!--#include file="top.asp"-->

<%

id=request("id")

if IsNumeric(id)=false or isNull(id) then

response.write ("参数不正确,请返回!")

response.end

end if

addok=request("addok")

If addok="" Or IsNull(addok) then

strSourceFile = Server.MapPath("./") & "\test.xml"

''获取XML文件的路径这里根据你的虚拟目录不同而不同

Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")

''以自由线程创建一个XML对像

objXML.load(strSourceFile)''把XML文件读入内存

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%>">

网站名:<input type="text" name="site" value="<%=site%>" size="30">

网 址:<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文件的路径这里根据你的虚拟目录不同而不同

Set objXML = Server.CreateObject("Microsoft.XMLDOM")

''创建XML对像

objXML.load(strSourceFile)

''把XML文件读入内存中

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

''根据得到的数据建立XML片段

set objXML2=Server.CreateObject("Microsoft.XMLDOM")

''建立一个新XML对像

objXML2.loadXML(XMLnode)

''把XML版片段读入内存中

set rootNewNode=objXML2.documentElement

''获得objXML2的根节点

objRootlist.ReplaceChild rootNewNode,rootOldNode

''修改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>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多