开发基于XML的留言板[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 net_lover 的 blog

开发基于xml的留言板

    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>&nbsp;</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>"

本文关键:XML,留言板
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top