日期:2011-08-08  浏览次数:20714 次

 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>是没有子节点的,
  ’ 如果不加判断在第一次运得时就会报错