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.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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)