ASP开发基于XML的留言板

ASP教程 2025-08-06

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. <留言本>
  2. <留言记录>
  3. <留言者姓名>孟宪会
  4. <电子邮件>amxh@testDomain.com
  5. <网址>http://go.*1*6*3.com/~colorweb
  6. <留言内容>测试成功!!

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

  1. <%@Language=VBScript%>
  2. <%
  3. '设置Web页面的信息
  4. Response.Buffer=true
  5. Response.Expires=-1
  6. '显示留言函数init()
  7. Functioninit()
  8. entryForm()
  9. '定义局部变量
  10. DimobjXML
  11. DimarrNames
  12. DimarrEmails
  13. DimarrURLS
  14. DimarrMessages
  15. '创建XMLDOM文档对象,用来存放留言
  16. SetobjXML=server.createObject(Msxml2.DOMDocument)
  17. objXML.async=false
  18. objXML.load(server.MapPath(guestbook.xml))
  19. '取得留言本各元素的集合
  20. SetarrNames=objXML.getElementsByTagName(留言者姓名)
  21. SetarrEmails=objXML.getElementsByTagName(电子邮件)
  22. SetarrURLS=objXML.getElementsByTagName(网址)
  23. SetarrMessages=objXML.getElementsByTagName(留言内容)
  24. Response.Write
  25. Response.Write
  26. Response.Write各位的留言如下:
  27. Response.Write
  28. '输出留言本各元素的内容,最新的留言先显示
  29. Forx=arrNames.length-1To0Step-1
  30. Response.Write&arrNames.item(x).text&
  31. Response.Write网址:&arrURLS.item(x).text&
  32. Response.Write留言内容:
  33. Response.Write&arrMessages.item(x).text&
  34. Response.Write
  35. Next
  36. Response.Write
  37. SetobjXML=nothing
  38. EndFunction
  39. '向XML文件添加留言记录的函数addEntry()
  40. FunctionaddEntry()
  41. '定义局部变量
  42. DimstrName
  43. DimstrEmail
  44. DimstrURL
  45. DimstrMessage
  46. '取得留言表单的输入内容
  47. strName=Request.Form(姓名)
  48. strEmail=Request.Form(电子邮件)
  49. strURL=Request.Form(网址)
  50. strMessage=Request.Form(留言)
  51. DimobjXML
  52. DimobjEntry
  53. DimobjName
  54. DimobjEmail
  55. DimobjURL
  56. DimobjMessage
  57. '向XML文件添加留言内容
  58. SetobjXML=server.createObject(Msxml2.DOMDocument)
  59. objXML.async=false
  60. objXML.load(server.MapPath(guestbook.xml))
  61. SetobjEntry=objXML.createNode(element,留言记录,)
  62. objXML.documentElement.appendChild(objEntry)
  63. SetobjName=objXML.createNode(element,留言者姓名,)
  64. objEntry.appendChild(objName)
  65. objName.text=strName
  66. SetobjEmail=objXML.createNode(element,电子邮件,)
  67. objEntry.appendChild(objEmail)
  68. objEmail.text=strEmail
  69. SetobjURL=objXML.createNode(element,网址,)
  70. objEntry.appendChild(objURL)
  71. objURL.text=strURL
  72. SetobjMessage=objXML.createNode(element,留言内容,)
  73. objEntry.appendChild(objMessage)
  74. objMessage.text=strMessage
  75. objXML.save(server.MapPath(guestbook.xml))
  76. Response.Redirect(guestbook.asp)
  77. Endfunction
  78. '填写和发送留言表单的函数entryForm()
  79. FunctionentryForm()
  80. Response.WriteXML留言本例子

  81. Response.Write
  82. Response.Write
  83. Response.Write
  84. Response.Write您的姓名:
  85. Response.Write电子邮件:
  86. Response.Write您的网址:
  87. Response.Write您的留言:
  88. Response.Write
  89. Response.Write
  90. Response.Write
  91. EndFunction
  92. %>
  93. XML留言例子
  94. <%
  95. '判断是否发送了留言,并更新留言信息
  96. Dima
  97. a=Request.Querystring(action)
  98. Ifa<>Then
  99. addEntry
  100. else
  101. init
  102. EndIf
  103. %>

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