本文共 3596 字,大约阅读时间需要 11 分钟。
这个文件要实现的功能就是读取并显示XML数据,首先创建一个XML对像然后把XML读入内存中,利用DOM分离出我们所
要的数据。<%
strSourceFile = Server.MapPath("/") & "List.xml"'获取XML文件的路径这里根据你的虚拟目录不同而不同Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")'以自由线程创建一个XML对像objXML.load(strSourceFile)'把XML文件读入内存Set objRootsite = objXML.documentElement.selectSingleNode("NewList")'选取NewList节点%><html><head><title>留言本</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--td { font-family: "宋体"; font-size: 9pt; text-decoration: none}a { font-family: "宋体"; font-size: 9pt; color: #0066CC; text-decoration: none}a:hover { color: #FF6600; text-decoration: underline}--></style></head><body bgcolor="#0099CC" text="#000000"><table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#CCCCCC"><tr bgcolor="#000000"> <td colspan="2"><font color="#FFFFFF">留言溥 <a href="PostNew.asp"><font color=#FFFFFF>写新留言</font></a></font></td></tr><% PageSize =10'假设每页显示10条留言AllNodesNum =objRootsite.childNodes.length-1'获取子节点数据(因为是从节点数从0开始的所最大子节点数要减1)PageNum=AllNodesNumPageSize+1'算出总页数PageNo=request.querystring("PageNo")if PageNo="" then'如果是每一次获得页面则定位到每一页显示最新的留言PageNo=PageNumend ifStarNodes=PageNo*PageSize-1'获得起始节点EndNodes=(PageNo-1)*PageSize'获得结束节点if EndNodes<0 thenEndNodes=0end ifif StarNodes>AllNodesNum then'判断起始节点数是否超过总的节点数EndNodes=EndNodes-(StarNodes-AllNodesNum)'如果超过则结束节点要减去(StarNodes-AllNodesNum)的差值否则下标会超界出错StarNodes=AllNodesNumend ifif EndNodes<0 thenEndNodes=0end ifwhile 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'获得用户Eamiltext = 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-1wend set objXML=nothing %><tr bgcolor="#FFFFFF" align="right"> <td colspan="2"> 共有页 <% if cint(PageNo)<>PageNum then'分页response.write "<a href='index.asp?PageNo="&(PageNo+1)&"'>上一页</a>"end ifif cint(PageNo)<>1 thenresponse.write "<a href='index.asp?PageNo="&(PageNo-1)&"'>下一页</a> "end if%></td></tr></table></body></html>来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124875/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-124875/