DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> 使用XML實現BBS
使用XML實現BBS
編輯:XML基礎     

 

表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 ... start  with ... 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:

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved