首页 > 编程 > ASP > 正文

ASP开发基于XML的留言板

2024-05-04 11:10:04
字体:
来源:转载
供稿:网友

XML(Extensible Markup Language)是一种基于文本格式的标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离,而且是与平台无关的。下面利用XML作为数据的载体,开发一个基于XML的留言板。

XML(Extensible Markup Language)是一种基于文本格式的标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离,而且是与平台无关的。由于XML注重数据内容的描述,因而,对于数据的检索非常有意义,我们不会再象HTML那样,检索出与我们要求无关的信息。另一方面,XML文件是数据的载体,利用XML作为数据库,不需要访问任何数据库系统,我们可以使用任意WEB技术来显示我们的数据,比如HTML,Flash 5 等。由于世界各大计算机公司的积极参与,XML正日益成为基于互联网的数据格式新一代的标准。下面利用XML作为数据的载体,开发一个基于XML的留言板。

首先,我们建立XML文件guestbook.xml,该文件记录了留言者的姓名、电子邮件、网址、留言内容。当然,我们也可以根据需要添加任意多的信息。

文件内容如下:

 

 
  1. <?xml version="1.0" encoding="gb2312"?> 
  2. <留言本> 
  3. <留言记录> 
  4. <留言者姓名>孟宪会</留言者姓名> 
  5. <电子邮件>amxh@testDomain.com</电子邮件> 
  6. <网址>http://go.163.com/~colorweb</网址> 
  7. <留言内容>测试成功!!</留言内容> 
  8. </留言记录> 
  9. </留言本> 

由于目前许多服务器都支持ASP,我们采用常见的ASP来作为实现的工具,guestbook.asp文件如下:

 

 
  1. <%@Language="VBScript"%> 
  2. <% 
  3. '设置Web页面的信息 
  4. Response.Buffer = true 
  5. Response.Expires = -1 
  6. '显示留言函数init() 
  7. Function init() 
  8. entryForm() 
  9. '定义局部变量 
  10. Dim objXML 
  11. Dim arrNames 
  12. Dim arrEmails 
  13. Dim arrURLS 
  14. Dim arrMessages 
  15. '创建XMLDOM文档对象,用来存放留言 
  16. Set objXML = server.createObject("Msxml2.DOMDocument"
  17. objXML.async = false 
  18. objXML.load(server.MapPath("guestbook.xml")) 
  19. '取得留言本各元素的集合 
  20. Set arrNames = objXML.getElementsByTagName("留言者姓名"
  21. Set arrEmails = objXML.getElementsByTagName("电子邮件"
  22. Set arrURLS = objXML.getElementsByTagName("网址"
  23. Set arrMessages = objXML.getElementsByTagName("留言内容"
  24. Response.Write "<table border='0' width='100%'>" 
  25. Response.Write "<tr><td bgcolor='#00CCFF' align='center' height='26'>" 
  26. Response.Write "<b>各位的留言如下:</b>" 
  27. Response.Write "</td></tr>" 
  28. '输出留言本各元素的内容,最新的留言先显示 
  29. For x=arrNames.length-1 To 0 Step -1 
  30. Response.Write "<tr><td><a href=mailto:" & arrEmails.item(x).text & ">" & arrNames.item(x).text & "</a></td></tr>" 
  31. Response.Write "<tr><td>网址:<a href=" & arrURLS.item(x).text & " target='_blank'>" & arrURLS.item(x).text & "</a><td></tr>" 
  32. Response.Write "<tr><td>留言内容:</td></tr>" 
  33. Response.Write "<tr><td bgcolor='#0099ff'>" & arrMessages.item(x).text &"</td></tr>" 
  34. Response.Write "<tr><td></td></tr>" 
  35. Next 
  36. Response.Write "</table>" 
  37. Set objXML = nothing 
  38. End Function 
  39. '向XML文件添加留言记录的函数addEntry() 
  40. Function addEntry() 
  41. '定义局部变量 
  42. Dim strName 
  43. Dim strEmail 
  44. Dim strURL 
  45. Dim strMessage 
  46. '取得留言表单的输入内容 
  47. strName = Request.Form("姓名"
  48. strEmail = Request.Form("电子邮件"
  49. strURL = Request.Form("网址"
  50. strMessage = Request.Form("留言"
  51. Dim objXML 
  52. Dim objEntry 
  53. Dim objName 
  54. Dim objEmail 
  55. Dim objURL 
  56. Dim objMessage 
  57. '向XML文件添加留言内容 
  58. Set objXML = server.createObject("Msxml2.DOMDocument"
  59. objXML.async = false 
  60. objXML.load(server.MapPath("guestbook.xml")) 
  61. Set objEntry = objXML.createNode("element""留言记录"""
  62. objXML.documentElement.appendChild(objEntry) 
  63. Set objName = objXML.createNode("element""留言者姓名"""
  64. objEntry.appendChild(objName) 
  65. objName.text = strName 
  66. Set objEmail = objXML.createNode("element""电子邮件"""
  67. objEntry.appendChild(objEmail) 
  68. objEmail.text = strEmail 
  69. Set objURL = objXML.createNode("element""网址"""
  70. objEntry.appendChild(objURL) 
  71. objURL.text = strURL 
  72. Set objMessage = objXML.createNode("element""留言内容"""
  73. objEntry.appendChild(objMessage) 
  74. objMessage.text = strMessage 
  75. objXML.save(server.MapPath("guestbook.xml")) 
  76. Response.Redirect("guestbook.asp"
  77. End function 
  78. '填写和发送留言表单的函数entryForm() 
  79. Function entryForm() 
  80. Response.Write "<p align='center'><b>XML 留言本 例子</b></p>" 
  81. Response.Write "<hr color='#000099' width='100%' noshade>" 
  82. Response.Write "<form action=guestbook.asp?action=addEntry method=post>" 
  83. Response.Write "<table border=1>" 
  84. Response.Write "<tr><td>您的姓名:</td><td><input type=text name=姓名 /></td></tr>" 
  85. Response.Write "<tr><td>电子邮件:</td><td><input type=text name=电子邮件 /></td></tr>" 
  86. Response.Write "<tr><td>您的网址:</td><td><input type=text name=网址 /></td></tr>" 
  87. Response.Write "<tr><td>您的留言:</td><td><textarea name=留言 cols=40 rows=5></textarea></td></tr>" 
  88. Response.Write "<tr><td></td><td><input type=submit value=发布留言 /></td></tr>" 
  89. Response.Write "</table>" 
  90. Response.Write "</form>" 
  91. End Function 
  92. %> 
  93. <html> 
  94. <head> 
  95. <title>XML 留言例子</title> 
  96. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"
  97. </head> 
  98. <body> 
  99. <% 
  100. '判断是否发送了留言,并更新留言信息 
  101. Dim a 
  102. a = Request.Querystring("action"
  103. If a<>"" Then 
  104. addEntry 
  105. else 
  106. init 
  107. End If 
  108. %> 
  109. </body> 
  110. </html> 

以上是利用XML开发留言板简单的例子,可以根据需要进行添加更多的功能。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表