好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 使用XML實現BBS(主題列表篇)

使用XML實現BBS(主題列表篇)

熱門標簽:本地電話機器人 r語言數據可視化地圖標注 東營電銷 如何修改多個百度地圖標注 南寧網絡外呼系統運營商 隨州外呼調研系統 高德地圖地圖標注服務中心 400電話辦理包年 微信地圖標注合并了
表A:
  1-0-1,this is a test
  3-1-1,this is a test
  4-3-1,this is a test
  5-3-1,this is a test
  2-0-2,this is a test
  上面是BBS主題列表的一個例子。一般來說,假如不是使用Oracle(Oracle 有一條查詢語句可以自動生成家族樹,請查閱Select ... startwith ... connect by ...語句),那么如何實現上例的列表是一件費事的工作(相信許多程序員都寫過)。
  如果我們改用XML來實現,那么結果會怎么樣呢?
  現在我們使用"Select * from bbs"從數據庫中查詢貼子,并以XML格式返回(如果你是用ADO,那么可以用其RecordSet.Save ... adPersistXML直接生成,當然如果你不喜歡ADO生成的格式,可用程序生成,如本例):
  表B:
  ?xml version="1.0"?>
  ?xml-stylesheet type="text/xsl" href="b.xsl"?>
  bbs>
  post sid="4" pid="3" aid="1">
  title>4-3-1,this is a test/title>
  content>slddfjslajfsdljf/content>
  /post>
  post sid="5" pid="3" aid="1">
  title>5-3-1,this is a test/title>
  content>slddfjslajfsdljf/content>
  /post>
  post sid="3" pid="1" aid="1">
  title>3-1-1,this is a test/title>
  content>slddfjslajfsdljf/content>
  /post>
  post sid="1" pid="0" aid="1">
  title>1-0-1,this is a test/title>
  content>slddfjslajfsdljf/content>
  /post>
  post sid="2" pid="0" aid="2">
  title>2-0-2,this is a test/title>
  content>slddfjslajfsdljf/content>
  /post>
  /bbs>
  說明:這里sid是貼子的id號,pid是貼子的父id號。title是標題,content是貼子的內容。
  上表中第二行是指定使用b.XSL來轉換XML內容。這是提供給IE5的信息。假如你使用XMLDOM,那么可以不要這條信息。
  我們再來看看將上表的XML內容顯示成表A形式的XSL文件是怎么實現的:
  表C:b.XSL
  ?xml version=''1.0''?>
  xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  xsl:template match="/">
  html>
  body>
   xsl:apply-templates select="*"/>
  /body>
  /html>
  /xsl:template>
  xsl:template match="post">
  li>
   div>
   xsl:attribute name="title">xsl:value-of select="content"/>/xsl:attribute>
   xsl:value-of select="title"/>
   xsl:if test="/bbs/post[@pid=context()/@sid]">
   xsl:element name="ul">
   xsl:apply-templates select="/bbs/post[@pid=context()/@sid]"/>
   /xsl:element>
   /xsl:if>
   /div>
  /li>
  /xsl:template>
  xsl:template match="bbs">
  ul>
  xsl:apply-templates select="post[@pid=0]"/>
  /ul>
  /xsl:template>
  /xsl:stylesheet>
  現在,你將表B的內容存為abc.xml,將表C的內容存為b.xsl,然后在IE5中打開,你就可以看到和表A一樣的內容了。
  因此可以看出,XSL文件解定了最終的顯示結果。假如你有多個子論壇,那么無需更改論壇程序,只要為各個子論壇提供不同XSL文件,就可以讓各個子論壇的版而不論風格畫面還是主題排列都會具有獨特的表現。如果提供免費論壇服務,那么允許論壇申請者定制自已的XSL文件將是一個良好的選擇。
  但是假如客戶端不支持XML,該怎么辦呢?答案很簡單,由服務端先將XML轉換成HTML,再傳到客戶端。
  下面我們以IIS4/5+IE5+ASP來實現這個例子(服務器必需安裝IE5):
  %@ LANGUAGE = JScript %>
  %
  Set rsXML=Server.CreateObject("ADODB.RecordSet");
  sSQL = “SELECT * from bbs"
  sConn = “你自個兒寫”
  rsXML.CursorLocation = adUseClient
  rsXML.Open sSQL, sConn, adOpenStatic
  //指定XSL文件位置
  var styleFile = Server.MapPath("simple.xsl");
  // Save the XML to XMLDOM
  var source = Server.CreateObject("Microsoft.XMLDOM");
  ''rsXML.Save source, adPersistXML
  ''我相當不喜歡ADO直接Save出來的XML文檔,我總是這樣做:
  Dim GetData,v
  GetData = GetData "bbs>"
  while not RS_ForumInfo.EOF
  GetData = GetData "post>"
  for i = 0 to RS_ForumInfo.Fields.Count -1
  set v = RS_ForumInfo.Fields.Item(i)
  if (v.Type=201)or(v.Type=203)or(v.Type=205) then
  GetData = GetData "" RS_ForumInfo.Fields.Item(i).Name ">" _
  "![CDATA[" RS_ForumInfo.Fields.Item(i).Value "]]>" _
  "/" RS_ForumInfo.Fields.Item(i).Name ">"
  else
  GetData = GetData "" RS_ForumInfo.Fields.Item(i).Name ">" _
  RS_ForumInfo.Fields.Item(i).Value _
  "/" RS_ForumInfo.Fields.Item(i).Name ">"
  end if
  set v = Nothing
  next
  GetData = GetData "/post>"
  RS_ForumInfo.MoveNext
  wend
  GetData = GetData "/bbs>"
  source.loadXML GetData
  // Load the XSL
  var style = Server.CreateObject("Microsoft.XMLDOM");
  style.async = false;
  style.load(styleFile);
  Response.Write(source.transformNode(style));
  %>
  當然,由于此處為了簡便,直接使用ADO來生成XML,因此simple.xsl和上面的b.xsl是不同的。
  讀者可以參考上例和XSL參考資料(2000年的MSDN有比較詳細的XML/XSL SDK文檔)來編寫。(完)

標簽:宿遷 西雙版納 果洛 寧夏 拉薩 黃石 益陽 德州

巨人網絡通訊聲明:本文標題《使用XML實現BBS(主題列表篇)》,本文關鍵詞  使用,XML,實現,BBS,主題,列表,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用XML實現BBS(主題列表篇)》相關的同類信息!
  • 本頁收集關于使用XML實現BBS(主題列表篇)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 野花高清在线观看免费完整7| 97色情一区二区三区| 下身被黑人猛然进入| 亚洲男男网站| 普安县| 秋霞伦理影院| 乱女?小芳全集| 三浦恵理子无码OKSN249| 日本视频www色变态| 国产成人一区二区在线不卡| 娇妻yin荡挨cao日记h| 欧美一区二区三区在线观看| 一级黄色影片| 野花韩国大全免费观看6| 欧洲一级黄色| 蜜芽99久久精品无码专区| 小婬妇调教跪趴撅起白嫩屁股小说| 国产吞精99在线AV| 手机看片福利久久| 日韩国产中文字幕| 日韩精品一本二本三本的区别| 再深点灬舒服灬太大了添a | 韩国一级婬乱片A片| 日本精品一区二区三区四区| 俄罗斯黄色片| 色人阁小说| 手机在线永久免费观看AV片| 久久久高清免费视频| 好男人神马影院www在线观看| 周晓琳50厘米全部进入直肠| 国产又粗又猛又色又黃动图视频 | 亚洲精品网站在线观看不卡无广告| 看黄a大片免费| 岳70多岁了想和我做| 日本一区二区三区有限公司| 国产精品国产三级国产在线观看| 精品人妻久久久| 麻豆一区二区免费播放网站| 91精品久久国产青草| 女版三国爆衣手游破解版| 亚洲 日韩 中文 无码 制服|