用ASP+XML打造酷酷留言本2

 end if
  StarNodes=PageNo*PageSize-1'获得起始节点
  EndNodes=(PageNo-1)*PageSize'获得结束节点
  if EndNodes<0 then
  EndNodes=0
  end if
  if StarNodes>AllNodesNum then'判断起始节点数是否超过总的节点数
  EndNodes=EndNodes-(StarNodes-AllNodesNum)
  '如果超过则结束节点要减去(StarNodes-AllNodesNum)的差值否则下标会超界出错
  StarNodes=AllNodesNum
  end if
  if EndNodes<0 then
  EndNodes=0
  end if
  while StarNodes>=EndNodes
  '从结束节点到超始节点之间读取节点数据
  username = objRootsite.childNodes.item(StarNodes).childNodes.item(1).text
  '获得用户名
  fromwhere = objRootsite.childNodes.item(StarNodes).childNodes.item(2).text
  '获得用户来自那里
  Posttime = objRootsite.childNodes.item(StarNodes).childNodes.item(3).text
  '获得留言时间
  homepage = objRootsite.childNodes.item(StarNodes).childNodes.item(4).text
  '获得用户主页
  email = objRootsite.childNodes.item(StarNodes).childNodes.item(5).text
  '获得用户Eamil
  text = objRootsite.childNodes.item(StarNodes).childNodes.item(6).text
  '获昨留言内容
 
  '*****************************************************************************
  '这里使作了XML的DOM来读取数据,显然objRootsite对像所对应的节点为<NewList>
  ' objRootsite.childNodes.item(StarNodes)所对应的节点就是<list>节点因为不至一个<list>节点所以用了item()来识别当前节点数据,随着StarNodes的递减<list>节点根着往上移一个个读取<list>节点数据。
  'objRootsite.childNodes.item(StarNodes).childNodes.item(1).text所对应的节点为具体的每个节点的文本值,这里(1)所对应的就是username用户名(因为<list>节点的子节点才是我们真正所要的)
  '******************************************************************************

   text = replace(text,chr(13),"<br>")
  '替代回车
  text = replace(text,chr(32)," ")
  '替代空格
  %>
  <tr bgcolor="#F0F0F0">
  <td width="21%" height="94" valign="top">姓 名:<%=username%><br>
  来 自:<%=fromwhere%><br>
  </td>
  <td width="79%" height="94" valign="top"> | <a href="<%=homepage%>" target=_blank title="<%=username%
  >的主页">主页</a>
  | | <a href="mailto:<%=email%>" title="给<%=username%>写信">信箱</a> | |<font color="#CC6633">
  留言时间:<%=Posttime%> </font>|
  <hr>
  <%=text%> </td>
  </tr>
  <tr bgcolor="#FFFFFF" align="right">
  <td colspan="2"> </td>
  </tr>
  <%
  StarNodes=StarNodes-1
  wend
  set objXML=nothing
 

  %>
  <tr bgcolor="#FFFFFF" align="right">
  <td colspan="2"> 共有<<%=PageNum%>>页
  <%
  if cint(PageNo)<>PageNum then'分页
  response.write "<a href='index.asp?PageNo="&(PageNo+1)&"'>上一页</a>"
  end if
  if cint(PageNo)<>1 then
  response.write "<a href='index.asp?PageNo="&(PageNo-1)&"'>下一页</a> "
  end if
  %>
  </td>
  </tr>
  </table>
  </body>
  </html>
 

  六、建立写新留言程序(PostNew.asp)
  这个文件要实现的功能就是写入新的XML节点,首先创建一个XML对像然后把XML读入内存中,利用appendChild()方法加入我们生成的XML节点。

   <%
  username=request.form("username")
  if username<>"" then
  fromwhere =request.form("fromwhere")
  homepage =request.form("homepage")
  email =request.form("email")
  text =request.form("text")
  text =replace(text,"<","<")
  Posttime =now()
  strSourceFile = Server.MapPath("/") & "\List.xml"
  '获取XML文件的路径这里根据你的虚拟目录不同而不同
  Set objXML = Server.CreateObject("Microsoft.XMLDOM")
  '创建XML对像
  objXML.load(strSourceFile)
  '把XML文件读入内存中
  Set objRootlist = objXML.documentElement.selectSingleNode("NewList")
  '选取<NewList>节点
  if objRootlist.hasChildNodes then
  '判断<NewList>是否有子节点(因为如果是每一次<NewList>是没有子节点的,
  ’ 如果不加判断在第一次运得时就会报错
  id = objRootlist.lastchild.firstchild.text+1
  '这里获得将要插入子节点的ID号,其ID号为<NewList>的最后一个子节点(lastchild)的第一个子节点(firstchild)的ID号加1(这里我们按照关系型数据库的ID号来递增)
  else
  '如是没有字子节点则是第一次留言ID号设为1
  id=1
  end if
  brstr=chr(13)&chr(10)&chr(9)
  '为了插入XML文件中的节点换行空格排列整齐
  ’(当然你也可以不用这样只是为了XML数据好看而以)
  XMLnode=brstr&"<list>"&brstr & _
  "<id>"&id&"</id>"&brstr & _
  "<username>"&username&"</username>"&brstr & _
  "<fromwhere>"&fromwhere&"</fromwhere>"&brstr & _
  "<Posttime>"&Posttime&"</Posttime>"&brstr & _
  "<homepage>"&homepage&"</homepage>"&brstr & _
  "<email>"&email&"</email>"&brstr & _
  "<text>"&text&"</text>"&brstr & _
  "</list>"&chr(13)
  '根据得到的数据建立XML片段
  set objXML2=Server.CreateObject("Microsoft.XMLDOM")
  '建立一个新XML对像
  objXML2.loadXML(XMLnode)
  '把XML版片段读入内存中
 

 set rootNewNode=objXML2.documentElement
  '获得objXML2的根节点
  objRootlist.appendChild(rootNewNode)
  '把XML片段插入到List.xml中
  objXML.save(strSourceFile)
  '存储lsit.xml文件(因为不存储List.xml只在内存中更新了)
  set objXML=nothing
  set objXML2=nothing
  response.write "谢谢您的留言"
  response.end

  end if
  %>
  <html>
  <head>
  <title>Untitled Document</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <style type="text/css">
  <!--
  td { font-size: 9pt}
  -->
  </style>
  </head>
  <body bgcolor="#0099CC" text="#000000">
  <table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#FFFFFF">
  <form action="PostNew.asp" method="post" name="form1">
  <tr bgcolor="#000000">
  <td colspan="2"><font color="#FFFFFF">新留言</font></td>
  </tr>
  <tr bgcolor="#EFEFEF">
  <td width="19%" align="right">姓 名:</td>
  <td width="81%">
  <input type="text" name="username">
  ** </td>
  </tr>
  <tr bgcolor="#EFEFEF">
  <td width="19%" align="right">来 自:</td>
  <td width="81%">
  <input type="text" name="fromwhere" value="中国">
  </td>
  </tr>
  <tr bgcolor="#EFEFEF">
  <td width="19%" align="right">主 页:</td>
  <td width="81%">
  <input type="text" name="homepage" value="http://">
  </td>
  </tr>
  <tr bgcolor="#EFEFEF">
  <td width="19%" align="right">Email:</td>
  <td width="81%">
  <input type="text" name="email">
  </td>
  </tr>
  <tr bgcolor="#EFEFEF">
  <td width="19%" align="right" valign="top">内 容:</td>
  <td width="81%">
  <textarea name="text" cols="60" rows="10"></textarea>
  </td>
  </tr>
  <tr bgcolor="#EFEFEF">
  <td width="19%" align="right"> </td>
  <td width="81%">
  <input type="submit" name="Submit" value="提交">
  <input type="reset" name="Submit2" value="重填">
  </td>
  </tr>
  </form>
  </table>
  </body>
  </html>
 

  七、总结

  到这里我们就建立一个简单并有分页功能的XML留言本了,呵看完了简单吧,其实我这里只起一个抛砖引玉的功能,其目的是引导大家建立更复杂更好的ASP+XML程序,例如:所上面的留言本加上回复功能,管理功能,点击计数据功能等,甚至你可以把它变一个BBS等等。最后留言本运行结果如下:

  (List.xml在IE5下面的运行结果)

  (留言本index.asp运行结果)

  (PostNew.asp运得结果)

  最后如果你拷贝我上面的程序的不能运行,可是是拷贝时或者是我注释时出错了(不过首页要检查 strSourceFile = Server.MapPath("/") & "\List.xml"这里是否出错了,不过我可以告诉你如果是提示缺少对像那么多是这里出错了),最后你可以到http://Page2000.xiloo.com去下载源程序,也可以给我来信asp_boys@cmmail.com我会尽快给你寄去源程序。如果你有什么问题可以到http://www.4u2v.com/bbs因为我多在那里回答一些我知道的问题。

时间: 2024-09-20 02:31:37

用ASP+XML打造酷酷留言本2的相关文章

用ASP+XML打造留言本 - 4

asp+|xml 用ASP+XML打造留言本 - 4(01-6-6 15) 七.总结 到这里我们就建立一个简单并有分页功能的XML留言本了,呵看完了简单吧,其实我这里只起一个抛砖引玉的功能,其目的是引导大家建立更复杂更好的ASP+XML程序,例如:所上面的留言本加上回复功能,管理功能,点击计数据功能等,甚至你可以把它变一个BBS等等.最后留言本运行结果如下: (List.xml在IE5下面的运行结果) (留言本index.asp运行结果) (PostNew.asp运得结果) 最后如果你拷贝我上面

用ASP+XML打造留言本 - 3

asp+|xml 用ASP+XML打造留言本 - 3(01-6-6 15) 六.建立写新留言程序(PostNew.asp) 这个文件要实现的功能就是写入新的XML节点,首先创建一个XML对像然后把XML读入内存中,利用appendChild()方法加入我们生成的XML节点. <%username=request.form("username")if username<>"" thenfromwhere =request.form("fro

用ASP+XML打造留言本 - 2

asp+|xml 用ASP+XML打造留言本 - 2(01-6-6 17) 五.建立显示XML数据的ASP文件(index.asp) 这个文件要实现的功能就是读取并显示XML数据,首先创建一个XML对像然后把XML读入内存中,利用DOM分离出我们所要的数据. <%strSourceFile = Server.MapPath("/") & "\List.xml"'获取XML文件的路径这里根据你的虚拟目录不同而不同Set objXML = Server.C

用ASP+XML打造留言本

asp+|xml 用ASP+XML打造留言本 来源:www.yesky.com 一.读者指引 读者指引帮助你掌握本文的梗概.以免你看了大半才明白这编文章不适合你,给你造成视觉污染. 如果你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看. 阅读本文须具备的知识,对ASP有基本的了解,对XML和DOM有基本了解,如果你不了解那么你通过学习本文基本上能够撑握ASP+XML和DOM的应用,并能根据本文范写出自已更高级的ASP+XML程序. 二.基本思想 本文思想是基于用ASP和DOM来读

今天看到几篇好文章:显贴于此,不知可否加入精华区:用ASP+XML打造留言本 - 1

asp+|xml|精华 用ASP+XML打造留言本 - 1 苛子·yesky -------------------------------------------------------------------------------- 一.读者指引 读者指引帮助你掌握本文的梗概.以免你看了大半才明白这编文章不适合你,给你造成视觉污染. 如果你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看. 阅读本文须具备的知识,对ASP有基本的了解,对XML和DOM有基本了解,如果你不了解那

用ASP+XML打造留言本_应用技巧

用ASP+XML打造留言本   一.读者指引 读者指引帮助你掌握本文的梗概.以免你看了大半才明白这编文章不适合你,给你造成视觉污染. 如果你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看. 阅读本文须具备的知识,对ASP有基本的了解,对XML和DOM有基本了解,如果你不了解那么你通过学习本文基本上能够撑握ASP+XML和DOM的应用,并能根据本文范写出自已更高级的ASP+XML程序. 二.基本思想 本文思想是基于用ASP和DOM来读取和存储XML数据,并利用XML数据来存储留言信

利用ASP+XML打造个性化留言本

asp+|xml 一.读者指引 读者指引帮助你掌握本文的梗概.以免你看了大半才明白这编文章不适合你,给你造成视觉污染. 如果你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看. 阅读本文须具备的知识,对ASP有基本的了解,对XML和DOM有基本了解,如果你不了解那么你通过学习本文基本上能够撑握ASP+XML和DOM的应用,并能根据本文范写出自已更高级的ASP+XML程序. 二.基本思想 本文思想是基于用ASP和DOM来读取和存储XML数据,并利用XML数据来存储留言信息,达到同用数

用ASP+XML打造留言本(1)

一.读者指引 读者指引帮助你掌握本文的梗概.以免你看了大半才明白这编文章不适合你,给你造成视觉污染. 如果你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看. 阅读本文须具备的知识,对ASP有基本的了解,对XML和DOM有基本了解,如果你不了解那么你通过学习本文基本上能够撑握ASP+XML和DOM的应用,并能根据本文范写出自已更高级的ASP+XML程序. 二.基本思想 本文思想是基于用ASP和DOM来读取和存储XML数据,并利用XML数据来存储留言信息,达到同用数据库存储数据的功能

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

一.读者指引 读者指引帮助你掌握本文的梗概.以免你看了大半才明白这编文章不适合你,给你造成视觉污染. 如果你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看. 阅读本文须具备的知识,对ASP有基本的了解,对XML和DOM有基本了解,如果你不了解那么你通过学习本文基本上能够撑握ASP+XML和DOM的应用,并能根据本文范写出自已更高级的ASP+XML程序. 二.基本思想 本文思想是基于用ASP和DOM来读取和存储XML数据,并利用XML数据来存储留言信息,达到同用数据库存储数据的功能