用ASP XML打造留言本(2)_Xml教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:用XSL翻譯Web服務應用程序
      Web服務應用程序存在的一個常見問題是,真正的后端軟件不支持XML(或者至少不支持你Web服務所使用的標準化的XML)。要解決這個問題,很多架構都實施了一個翻譯階段,用來解釋收到的XML,并將它

      五、建立顯示XML數據的ASP文件(index.asp)

      這個文件要實現的功能就是讀取并顯示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=AllNodesNum\PageSize 1'算出總頁數
      PageNo=request.querystring("PageNo")
      if PageNo="" then'如果是每一次獲得頁面則定位到每一頁顯示最新的留言
      PageNo=PageNum
      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>

      分享:用XMLHTTP很好的一個例子
      雖然ting88沒有注冊的用戶不能下載歌曲,但搞定它也非難事啊:) 進入www.ting88.com的網站,把歌手專輯頁面的URL復制到文本框中再提交就可以得到歌曲的下載路徑,如:http://www.ting88.com/MusicL

      來源:模板無憂//所屬分類:Xml教程/更新時間:2008-08-22
      相關Xml教程