ASP操作XMLasp
1.ASP操作xml--显示xml文件中的所有节点
通常是利用数据库来保存数据,但也可以使用xml文件来保存数据。假设xml文件的内容是:
test.xml
<?xml version="1.0" encoding="gb2312"?>
<site>
&l...
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.esouy.com</url>
<time>2010-01-05</time>
</list>
<list>
<id>1</id>
<name>洗车机</name>
<url>http://www.xicheshebei.cn</url>
<time>2010-01-05 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>
<%
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.shgcn.com/</url>
<time>2010-01-05 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>
<%
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>
通常是利用数据库来保存数据,但也可以使用xml文件来保存数据。假设xml文件的内容是:
test.xml
<?xml version="1.0" encoding="gb2312"?>
<site>
<root>
<list>
<id>0</id>
<name>易搜友</name>
<url>http://www.esouy.com</url>
<time>2010-01-05</time>
</list>
<list>
<id>1</id>
<name>洗车机</name>
<url>http://www.xicheshebei.cn</url>
<time>2010-01-05 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>
<%
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.shgcn.com/</url>
<time>2010-01-05 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>
<%
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>
上一篇:asp图片加水印的功能
下一篇:ASP中JMAIL发送邮件
我要评论