直播中
這個文件要實現(xiàn)的功能就是讀取并顯示XML數(shù)據(jù),首先創(chuàng)建一個XML對像然后把XML讀入內(nèi)存中,利用DOM分離出我們所
要的數(shù)據(jù)。
<%
strSourceFile = Server.MapPath("/") & "\List.xml"
'獲取XML文件的路徑這里根據(jù)你的虛擬目錄不同而不同
Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
'以自由線程創(chuàng)建一個XML對像
objXML.load(strSourceFile)'把XML文件讀入內(nèi)存
Set objRootsite = objXML.documentElement.selectSingleNode("NewList")
'選取NewList節(jié)點
%>
<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'假設(shè)每頁顯示10條留言
AllNodesNum =objRootsite.childNodes.length-1
'獲取子節(jié)點數(shù)據(jù)(因為是從節(jié)點數(shù)從0開始的所最大子節(jié)點數(shù)要減1)
PageNum=AllNodesNum\PageSize+1'算出總頁數(shù)
PageNo=request.querystring("PageNo")
if PageNo="" then'如果是每一次獲得頁面則定位到每一頁顯示最新的留言
PageNo=PageNum
end if
StarNodes=PageNo*PageSize-1'獲得起始節(jié)點
EndNodes=(PageNo-1)*PageSize'獲得結(jié)束節(jié)點
if EndNodes<0 then
EndNodes=0
end if
if StarNodes>AllNodesNum then'判斷起始節(jié)點數(shù)是否超過總的節(jié)點數(shù)
EndNodes=EndNodes-(StarNodes-AllNodesNum)
'如果超過則結(jié)束節(jié)點要減去(StarNodes-AllNodesNum)的差值否則下標(biāo)會超界出錯
StarNodes=AllNodesNum
end if
if EndNodes<0 then
EndNodes=0
end if
while StarNodes>=EndNodes
'從結(jié)束節(jié)點到超始節(jié)點之間讀取節(jié)點數(shù)據(jù)
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
'獲昨留言內(nèi)容
'*****************************************************************************
'這里使作了XML的DOM來讀取數(shù)據(jù),顯然objRootsite對像所對應(yīng)的節(jié)點為<NewList>
' objRootsite.childNodes.item(StarNodes)所對應(yīng)的節(jié)點就是<list>節(jié)點因為不至一個<list>節(jié)點所以用了item()
來識別當(dāng)前節(jié)點數(shù)據(jù),隨著StarNodes的遞減<list>節(jié)點根著往上移一個個讀取<list>節(jié)點數(shù)據(jù)。
'objRootsite.childNodes.item(StarNodes).childNodes.item(1).text所對應(yīng)的節(jié)點為具體的每個節(jié)點的文本值,這里
(1)所對應(yīng)的就是username用戶名(因為<list>節(jié)點的子節(jié)點才是我們真正所要的)
'******************************************************************************
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>