モチベーション:
並べ替え機能により、ページ上のデータがより人間らしく見えるようになります。これは、Web サイトでよく見られる機能的な効果です。従来、自動仕分けは多くのスクリプトコードを使って行われており、一般の愛好家にとっては困難でした。ただし、XML を使用して処理する方がはるかに簡単です。あなたのページをもっとゴージャスにしてください、笑、あなたも興奮していますか!
材料:
XML ボリュームの動的ソートには、paixu.xml と paixu.xsl の 2 つのファイルがあります。
その機能は次のとおりです。
ページを更新しなくても、ユーザーのニーズに応じてデータを再並べ替えて表示できるため、データ対話機能が効果的に向上し、ページがよりカラフルになります。
効果:
ここを参照してください
コード:
パイシュ.xml
<?xml バージョン="1.0" エンコーディング="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="paixu.xsl" ?>
<ブルーアイデア>
<チーム>
<blue_ID>1</blue_ID>
<blue_name>帆走</blue_name>
<blue_text>単純な並べ替え</blue_text>
<blue_time>2002-1-11 17:35:33</blue_time>
<blue_class>XML トピック</blue_class>
</チーム>
<チーム>
<blue_ID>2</blue_ID>
<blue_name>フライングバード</blue_name>
<blue_text>結婚すると傷つくことになる</blue_text>
<blue_time>2001-09-06 12:45:51</blue_time>
<blue_class>イリゲーション エッセンス</blue_class>
</チーム>
<チーム>
<blue_ID>3</blue_ID>
<blue_name>カオ ジー</blue_name>
<blue_text>UBB フォーラムでの正規表現のアプリケーション</blue_text>
<blue_time>2001-11-23 21:02:16</blue_time>
<blue_class>Web プログラミングのエッセンス</blue_class>
</チーム>
<チーム>
<blue_ID>4</blue_ID>
<blue_name>タイラン</blue_name>
<blue_text>年末クラシックステアリングパーティー完全マニュアル v0.1</blue_text>
<blue_time>2000-12-08 10:22:48</blue_time>
<blue_class>フォーラム灌漑エリア</blue_class>
</チーム>
<チーム>
<blue_ID>5</blue_ID>
<blue_name>mmkk</blue_name>
<blue_text>ASP エラー メッセージの概要</blue_text>
<blue_time>2001-10-13 16:39:05</blue_time>
<blue_class>JavaScript</blue_class>
</チーム>
</ブルーアイデア>
paixu.xsl
<?xml バージョン="1.0" エンコーディング="gb2312" ?>
<xsl:stylesheet xmlns:xsl=" http://www.w3.org/TR/WD-xsl ">
<xsl:template match="/">
<html>
<頭>
<title> XML の実践ヒント (1): 動的ソート</title>
<スタイル>
body,BlueIdea,team,blue_ID,blue_name,blue_text,blue_time,blue_class{ font: 12px "宋体", "Arial", "Times New Roman";
テーブル { フォントサイズ: 12px; ボーダー: 0px; ボーダーカラー: #99CC99 #CCCCCC; セルスペース:3; テキスト装飾: ブリンク}
スパン { フォントサイズ: 12px; }
</スタイル>
<スクリプト>
関数タクシー(x)
{
スタイルシート=ドキュメント.XSLドキュメント;
ソース=ドキュメント.XMLドキュメント;
sortField=document.XSLDocument.selectSingleNode(" //@order-by ");
ソートフィールド.値=x;
Layer1.innerHTML=source.documentElement.transformNode(スタイルシート);
}
</script>
</head>
<本文>
<p align="center"><span>XML ボリュームの実践的なヒント (1): 動的並べ替え</span></p>
<div id="レイヤー1" name="レイヤー1">
<xsl:apply-templates select="BlueIdea" />
</div>
</body>
</html>
</xsl:テンプレート>
<xsl:template match="BlueIdea">
<table width="500" border="1" align="center" cellpadding="1" cellpacing="1" bordercolordark="#ffffff" bordercolorlight="#ADAAAD">
<tr bgcolor="#FFCC99" align="center">
<td style="cursor:s-resize" onClick="taxis('blue_ID')">番号</td>
<td style="cursor:s-resize" onClick="taxis('blue_name')">名前</td>
<td style="cursor:s-resize" onClick="taxis('blue_text')">テーマ</td>
<td style="cursor:s-resize" onClick="taxis('blue_time')">公開時間</td>
<td style="cursor:s-resize" onClick="taxis('blue_class')">分類</td>
</tr>
<xsl:apply-templates select="team" order-by="blue_ID"/>
</テーブル>
</xsl:テンプレート>
<xsl:template match="チーム">
<tr align="center">
<xsl:apply-templates select="blue_ID" />
<xsl:apply-templates select="blue_name" />
<xsl:apply-templates select="blue_text" />
<xsl:apply-templates select="blue_time" />
<xsl:apply-templates select="blue_class" />
</tr>
</xsl:テンプレート>
<xsl:template match="blue_ID">
<td bgcolor="#eeeeee">
<xsl:値 />
</td>
</xsl:テンプレート>
<xsl:template match="blue_name">
<td>
<xsl:値 />
</td>
</xsl:テンプレート>
<xsl:template match="blue_text">
<td>
<xsl:値 />
</td>
</xsl:テンプレート>
<xsl:template match="blue_time">
<td>
<xsl:値 />
</td>
</xsl:テンプレート>
<xsl:template match="blue_class">
<td>
<xsl:値 />
</td>
</xsl:テンプレート>
</xsl:スタイルシート>
説明する:
1) paixu.xml はデータ ファイルです。誰でも問題ないと思います。
2) paixu.xsl はフォーマット ファイルです。注意すべき点がいくつかあります。
(1) スクリプト内:
sortField=document.XSLDocument.selectSingleNode(" //@order-by ");
関数は次のとおりです。 order-by 属性を持つ最初のノードを検索し、その対応するノードは次のようになります。
<xsl:apply-templates select="team" order-by="blue_ID"/>
したがって、最初の onLoad 時の order-by の値は blue_ID です。
そして、order-by の値を再定義することでソートの目的を達成します。
Layer1.innerHTML=source.documentElement.transformNode(スタイルシート);
この機能は、XML データの変換後に Layer1 を変更するため、パラメーター 'blue_name' を渡した後、
<td style="cursor:s-resize" onClick="taxis('blue_name)">名前</td>
order-by の値を「blue_name」に変更します。つまり、並べ替え方法として「blue_name」を使用します。
次に、Layer1 の innerHTML 値を再表示して、新しくソートされたコンテンツを表示します。
(2)本文中:
order-by
これを見逃すことはできません。効果を確認してください。 !
<?xml バージョン="1.0" エンコーディング="gb2312" ?>
もう一つ:
Encoding="gb2312" が、ほとんどの XML 教科書に示されているコードに追加されることはほとんどありません。
したがって、XML で中国語を使用すると、この宣言が記述されていないためにエラーが報告されます。
追記:
誰もが動的ソートの概念に慣れると、実装方法が実際には非常に簡単であることがわかるでしょう。
order-by 値を変更して、再度表示するだけです。
動的クエリと動的ページングの機能では、依然としてこの考え方に従っています。