当前位置: 首页 > 图文教程 > XML家族 > XML > 利用XML开发留言板简单的例子

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

利用XML开发留言板简单的例子


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 39 ::
收藏到网摘: n/a

XML是一种基于文本格式的元标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离(xml+xsl),而且是与平台无关的。

由于XML注重数据内容的描述,因而,对于数据的检索非常有意义,我们不会再象HTML那样,检索出与我们要求无关的信息。

另一方面,XML文件是数据的载体,利用XML作为数据库,不需要访问任何数据库系统,我们可以使用任意WEB技术来显示我们的数据,比如HTML,FlashMX 等。

由于世界各大计算机公司的积极参与,XML正日益成为基于互联网的数据格式新一代的标准。

下面利用XML作为数据的载体,开发一个基于XML的留言板。
 
首先,我们建立XML文件guestbook.xml,该文件记录了留言者的姓名、电子邮件、网址、留言内容。当然,我们也可以根据需要添加任意多的信息。文件内容如下:
 
<?xml version="1.0" encoding="gb2312"?>
<留言本>
<留言记录>
<留言者姓名>KAI</留言者姓名>
<电子邮件>[email protected]</电子邮件>
<网址>http://www.17xml.com </网址>
<留言内容>千山万水总是情,常来泡妞行不行?咔咔:_)</留言内容>
</留言记录>
</留言本>
 
由于目前许多服务器都支持ASP,我们采用常见的ASP来作为实现的工具,guestbook.asp文件如下:
 
<%@Language="VBScript"%>
<%
'设置Web页面的信息
Response.Buffer = true
Response.Expires = -1
 
'显示留言函数init()
'www.knowsky.com
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开发留言板简单的例子,完全是抛砖引玉,可以根据需要进行添加更多的功能,所有程序在WIN2000+IIS5.0+IE5.5调试通过.