«
利用ASP+XML打造个性化留言本(2)

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  六、建立写新留言程序(PostNew.asp)</p><p>  这个文件要实现的功能就是写入新的XML节点,首先创建一个XML对像然后把XML读入内存中,利用appendChild()方法加入我们生成的XML节点。</p><p>  <code><%<br />username=request.form("username")<br />if username<>"" then<br />fromwhere =request.form("fromwhere")<br />homepage =request.form("homepage")<br />email =request.form("email")<br />text =request.form("text")<br />text =replace(text,"<","<")<br />Posttime =now()<br />strSourceFile = Server.MapPath("/") & "\List.xml"<br />'获取XML文件的路径这里根据你的虚拟目录不同而不同<br />Set objXML = Server.CreateObject("Microsoft.XMLDOM")<br />'创建XML对像<br />objXML.load(strSourceFile)<br />'把XML文件读入内存中<br />Set objRootlist = objXML.documentElement.selectSingleNode("NewList")<br />'选取<NewList>节点<br />if objRootlist.hasChildNodes then<br />'判断<NewList>是否有子节点(因为如果是每一次<NewList>是没有子节点的,<br />’ 如果不加判断在第一次运得时就会报错<br />id = objRootlist.lastchild.firstchild.text+1<br />'这里获得将要插入子节点的ID号,其ID号为<NewList>的最后一个子节点(lastchild)的第一个子节点(firstchild)的ID号加1(这里我们按照关系型数据库的ID号来递增)<br />else<br />'如是没有字子节点则是第一次留言ID号设为1<br />id=1<br />end if<br />brstr=chr(13)&chr(10)&chr(9)<br />'为了插入XML文件中的节点换行空格排列整齐<br />’(当然你也可以不用这样只是为了XML数据好看而以)<br />XMLnode=brstr&"<list>"&brstr & _<br />"<id>"&id&"</id>"&brstr & _<br />"<username>"&username&"</username>"&brstr & _<br />"<fromwhere>"&fromwhere&"</fromwhere>"&brstr & _<br />"<Posttime>"&Posttime&"</Posttime>"&brstr & _<br />"<homepage>"&homepage&"</homepage>"&brstr & _<br />"<email>"&email&"</email>"&brstr & _<br />"<text>"&text&"</text>"&brstr & _<br />"</list>"&chr(13)<br />'根据得到的数据建立XML片段<br />set objXML2=Server.CreateObject("Microsoft.XMLDOM")<br />'建立一个新XML对像<br />objXML2.loadXML(XMLnode)<br />'把XML版片段读入内存中<br />set rootNewNode=objXML2.documentElement<br />'获得objXML2的根节点<br />objRootlist.appendChild(rootNewNode)<br />'把XML片段插入到List.xml中<br />objXML.save(strSourceFile)<br />'存储lsit.xml文件(因为不存储List.xml只在内存中更新了)<br />set objXML=nothing<br />set objXML2=nothing<br />response.write "谢谢您的留言"<br />response.end<br />end if<br />%><br /><html><br /><head><br /><title>Untitled Document</title><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><style type="text/css"><br /><!--<br />td { font-size: 9pt}<br />--><br /></style><br /></head><br /><body bgcolor="#0099CC" text="#000000"><br /><table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#FFFFFF"><br /><form action="PostNew.asp" method="post" name="form1"><br /><tr bgcolor="#000000"><br /><td colspan="2"><font color="#FFFFFF">新留言</font></td><br /></tr><br /><tr bgcolor="#EFEFEF"><br /><td width="19%" align="right">姓 名:</td><br /><td width="81%"><br /><input type="text" name="username"><br />** </td><br /></tr><br /><tr bgcolor="#EFEFEF"><br /><td width="19%" align="right">来 自:</td><br /><td width="81%"><br /><input type="text" name="fromwhere" value="中国"><br /></td><br /></tr><br /><tr bgcolor="#EFEFEF"><br /><td width="19%" align="right">主 页:</td><br /><td width="81%"><br /><input type="text" name="homepage" value="http://"><br /></td><br /></tr><br /><tr bgcolor="#EFEFEF"><br /><td width="19%" align="right">Email:</td><br /><td width="81%"><br /><input type="text" name="email"><br /></td><br /></tr><br /><tr bgcolor="#EFEFEF"><br /><td width="19%" align="right" valign="top">内 容:</td><br /><td width="81%"><br /><textarea name="text" cols="60" rows="10"></textarea><br /></td><br /></tr><br /><tr bgcolor="#EFEFEF"><br /><td width="19%" align="right">&#160;</td><br /><td width="81%"><br /><input type="submit" name="Submit" value="提交"><br /><input type="reset" name="Submit2" value="重填"><br /></td><br /></tr><br /></form><br /></table><br /></body><br /></html></code>  七、总结</p>
<p> </p>

   <p>  到这里我们就建立一个简单并有分页功能的XML留言本了,呵看完了简单吧,其实我这里只起一个抛砖引玉的功能,其目的是引导大家建立更复杂更好的ASP+XML程序,例如:所上面的留言本加上回复功能,管理功能,点击计数据功能等,甚至你可以把它变一个BBS等等。最后留言本运行结果如下:</p><p>  (List.xml在IE5下面的运行结果)</p><img src="/content/uploadfile/200805/2008053116582135.gif" onclick="get_larger(this)" /><p>  (留言本index.asp运行结果)</p><img src="/content/uploadfile/200805/2008053116582150.gif" onclick="get_larger(this)" /><p>  (PostNew.asp运得结果)</p><p>  最后如果你拷贝我上面的程序的不能运行,可是是拷贝时或者是我注释时出错了(不过首页要检查strSourceFile = Server.MapPath("/") & "\List.xml"这里是否出错了,不过我可以告诉你如果是提示缺少对像那么多是这里出错了),最后你可以到http://Page2000.xiloo.com去下载源程序,也可以给我来信asp_boys@cmmail.com我会尽快给你寄去源程序。如果你有什么问题可以到http://www.4u2v.com/bbs因为我多在那里回答一些我知道的问题。</p><img src="/content/uploadfile/200805/2008053116582183.gif" onclick="get_larger(this)" /></p>