ASP开发基于XML的留言板
程序员文章站
2022-06-22 13:22:18
xml(extensible markup language)是一种基于文本格式的标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离,而且是与平台无...
xml(extensible markup language)是一种基于文本格式的标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离,而且是与平台无关的。由于xml注重数据内容的描述,因而,对于数据的检索非常有意义,我们不会再象html那样,检索出与我们要求无关的信息。另一方面,xml文件是数据的载体,利用xml作为数据库,不需要访问任何数据库系统,我们可以使用任意web技术来显示我们的数据,比如html,flash 5 等。由于世界各大计算机公司的积极参与,xml正日益成为基于互联网的数据格式新一代的标准。下面利用xml作为数据的载体,开发一个基于xml的留言板。
首先,我们建立xml文件guestbook.xml,该文件记录了留言者的姓名、电子邮件、网址、留言内容。当然,我们也可以根据需要添加任意多的信息。
文件内容如下:
<?xml version="1.0" encoding="gb2312"?> <留言本> <留言记录> <留言者姓名>孟宪会</留言者姓名> <电子邮件>amxh@testdomain.com</电子邮件> <网址>http://go.163.com/~colorweb</网址> <留言内容>测试成功!!</留言内容> </留言记录> </留言本>
由于目前许多服务器都支持asp,我们采用常见的asp来作为实现的工具,guestbook.asp文件如下:
<%@language="vbscript"%> <% '设置web页面的信息 response.buffer = true response.expires = -1 '显示留言函数init() function init() entryform() '定义局部变量 dim objxml dim arrnames dim arremails dim arrurls dim arrmessages '创建xmldom文档对象,用来存放留言 set objxml = server.createobject("msxml2.domdocument") objxml.async = false objxml.load(server.mappath("guestbook.xml")) '取得留言本各元素的集合 set arrnames = objxml.getelementsbytagname("留言者姓名") set arremails = objxml.getelementsbytagname("电子邮件") set arrurls = objxml.getelementsbytagname("网址") set arrmessages = objxml.getelementsbytagname("留言内容") response.write "<table border='0' width='100%'>" response.write "<tr><td bgcolor='#00ccff' align='center' height='26'>" response.write "<b>各位的留言如下:</b>" response.write "</td></tr>" '输出留言本各元素的内容,最新的留言先显示 for x=arrnames.length-1 to 0 step -1 response.write "<tr><td><a href=mailto:" & arremails.item(x).text & ">" & arrnames.item(x).text & "</a></td></tr>" response.write "<tr><td>网址:<a href=" & arrurls.item(x).text & " target='_blank'>" & arrurls.item(x).text & "</a><td></tr>" response.write "<tr><td>留言内容:</td></tr>" response.write "<tr><td bgcolor='#0099ff'>" & arrmessages.item(x).text &"</td></tr>" response.write "<tr><td> </td></tr>" next response.write "</table>" set objxml = nothing end function '向xml文件添加留言记录的函数addentry() function addentry() '定义局部变量 dim strname dim stremail dim strurl dim strmessage '取得留言表单的输入内容 strname = request.form("姓名") stremail = request.form("电子邮件") strurl = request.form("网址") strmessage = request.form("留言") dim objxml dim objentry dim objname dim objemail dim objurl dim objmessage '向xml文件添加留言内容 set objxml = server.createobject("msxml2.domdocument") objxml.async = false objxml.load(server.mappath("guestbook.xml")) set objentry = objxml.createnode("element", "留言记录", "") objxml.documentelement.appendchild(objentry) set objname = objxml.createnode("element", "留言者姓名", "") objentry.appendchild(objname) objname.text = strname set objemail = objxml.createnode("element", "电子邮件", "") objentry.appendchild(objemail) objemail.text = stremail set objurl = objxml.createnode("element", "网址", "") objentry.appendchild(objurl) objurl.text = strurl set objmessage = objxml.createnode("element", "留言内容", "") objentry.appendchild(objmessage) objmessage.text = strmessage objxml.save(server.mappath("guestbook.xml")) response.redirect("guestbook.asp") end function '填写和发送留言表单的函数entryform() function entryform() response.write "<p align='center'><b>xml 留言本 例子</b></p>" response.write "<hr color='#000099' width='100%' noshade>" response.write "<form action=guestbook.asp?action=addentry method=post>" response.write "<table border=1>" response.write "<tr><td>您的姓名:</td><td><input type=text name=姓名 /></td></tr>" response.write "<tr><td>电子邮件:</td><td><input type=text name=电子邮件 /></td></tr>" response.write "<tr><td>您的网址:</td><td><input type=text name=网址 /></td></tr>" response.write "<tr><td>您的留言:</td><td><textarea name=留言 cols=40 rows=5></textarea></td></tr>" response.write "<tr><td> </td><td><input type=submit value=发布留言 /></td></tr>" response.write "</table>" response.write "</form>" end function %> <html> <head> <title>xml 留言例子</title> <meta http-equiv="content-type" content="text/html; charset=gb2312"> </head> <body> <% '判断是否发送了留言,并更新留言信息 dim a a = request.querystring("action") if a<>"" then addentry else init end if %> </body> </html>
以上是利用xml开发留言板简单的例子,可以根据需要进行添加更多的功能。
下一篇: Global.asa文件技巧用法
推荐阅读
-
Asp.Net Core 轻松学-基于微服务的后台任务调度管理器
-
asp.net+xml+flash实现的图片展示效果示例
-
用ASP读取XML文件的具体方法与示例
-
基于ASP.NET MVC的ABP框架入门学习教程
-
基于java开发之系统托盘的应用
-
Asp.Net Core中基于Session的身份验证的实现
-
ASP.NET MVC5网站开发之用户角色的后台管理1(七)
-
ASP.NET MVC5网站开发之用户资料的修改和删除3(七)
-
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
-
解读ASP.NET 5 & MVC6系列教程(12):基于Lamda表达式的强类型Routing实现