ホームページ  >  記事  >  バックエンド開発  >  XML を使用して BBS を実装するための詳細な紹介 (トピック リスト)

XML を使用して BBS を実装するための詳細な紹介 (トピック リスト)

黄舟
黄舟オリジナル
2017-03-04 17:12:331598ブラウズ

表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 は投稿の内容です。
上記の表の 2 行目は、XML コンテンツを変換するために b.XSL を使用することを指定しています。これは IE5 に提供される情報です。 XMLDOM を使用する場合、このメッセージは必要ありません。
上記のテーブルの XML コンテンツを XSL ファイルにテーブル A の形式で表示する方法を見てみましょう:
テーブル C: b. テーブル C のコンテンツは b.xsl として保存され、IE5 で開かれます。 , 表Aと同じ内容が表示されます。
つまり、XSLファイルが最終的な表示結果を決定していることがわかります。複数のサブフォーラムがある場合は、フォーラムプログラムを変更する必要はなく、サブフォーラムごとに異なるXSLファイルを用意すれば、スタイル、画面、形式に関係なく、サブフォーラムごとに独自のパフォーマンスを持たせることができます。テーマアレンジメント。無料のフォーラム サービスが提供されている場合は、フォーラムの参加者が独自の XSL ファイルをカスタマイズできるようにするのが良い選択でしょう。

しかし、クライアントがXMLをサポートしていない場合はどうすればよいでしょうか?答えは簡単です。サーバーはまず XML を HTML に変換し、それをクライアントに送信します。

今度は IIS4/5+IE5+asp を使用してこの例を実装します (サーバーには IE5 がインストールされている必要があります):

<?xml version=&#39;&#39;1.0&#39;&#39;?>
  <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>

もちろん、簡単にするために、ADO を直接使用して XML を生成するため、上記の simple.xsl と b です。 xslは違います。
読者は上記の例と XSL 参考資料 (2000 年の MSDN にはより詳細な XML/XSL SDK ドキュメントがあります) を参照して書くことができます。 (終了)


上記は、XML を使用して BBS (トピック リスト) を実装する方法の詳細な紹介です。さらに関連するコンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。