ASP开发基于XML的留言板
2018-09-06 11:25
XML(Extensible Markup Language)是一种基于文本格式的标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离,而且是与平台无关的。由于XML注重数据内容的描述,因而,对于数据的检索非常有意义,我们不会再象HTML那样,检索出与我们要求无关的信息。另一方面,XML文件是数据的载体,利用XML作为数据库,不需要访问任何数据库系统,我们可以使用任意WEB技术来显示我们的数据,比如HTML,Flash 5 等。由于世界各大计算机公司的积极参与,XML正日益成为基于互联网的数据格式新一代的标准。下面利用XML作为数据的载体,开发一个基于XML的留言板。
首先,我们建立XML文件guestbook.xml,该文件记录了留言者的姓名、电子邮件、网址、留言内容。当然,我们也可以根据需要添加任意多的信息。
文件内容如下:
<?xml version=1.0 encoding=gb2312?> <留言本> <留言记录> <留言者姓名>孟宪会</留言者姓名> <电子邮件lt;/电子邮件> <网址>网址> <留言内容>测试成功!!</留言内容> </留言记录> </留言本>
由于目前许多服务器都支持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 & > & 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开发留言板简单的例子,可以根据需要进行添加更多的功能。