検索
特集

.NET Framework 2.0で改善されたXSLTVisual Studio Magazine(3/5 ページ)

XMLとHTMLの架け橋「XSLT」。.NET Framework 2.0のXSLTは、性能向上と一貫した変換アプローチを図った。この特集では、2.0で置き代わるXSLTプロセッサについて、具体的な手法を挙げる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


図1■XMLからHTMLへと変換する。この変換例では、Productsテーブルのすべてのレコードを1ページ内に表示する。この時、ページングを実装するためには、スタイルシートに対して「表示すべきレコードセット」「表示すべきページ番号」「レコード総数」(訳注:それぞれリスト2のrecordsPerPage、pageNumber、recordCount)をパラメータとして渡す必要がある。

 それでは次に、この例を基本にしてスタイルシートにパラメータを与えられるようにしていこう。そのためには、XmlArgumentListクラスを用いる。XmlArgunemtListには、パラメータをスタイルシートに渡す機構が備わっており、再利用そして保守しやすいXSLTを作ることが可能だ。また、XmlArgumentListクラスは、名前空間のURIとクラスとを関連付けることができ、スタイルシートからそのクラスのメソッドを直接呼び出すことをも可能とする。このようにスタイルシートから呼び出されるオブジェクトは、「拡張オブジェクト」と呼ばれる。

 XmlArgumentListには、処理を手助ける2つの重要なメソッドが含まれている。1つはAddParameter。これはXmlArgunebtListにパラメータを加えるものだ。もう1つは、AddExtensionObject。これはAddParameterに似ており、XmlArgumentListオブジェクトに新しい拡張オブジェクトを加える。いちどXmlArgumentListオブジェクトに拡張オブジェクトを加え、それをスタイルシートに渡せば、スタイルシートから該当するプロパティやメソッドを直接呼び出せるようになるのだ。

 リスト2に示したスタイルシートには、すでに必須パラメータを含めてある。そのため単純に、それらのパラメータに対応する値を引き渡して、標準のパラメータ値を上書きすればよい。

 しかしながら、ユーザーが前のページや次のページに移動できるようにするためには、(ページング用の)[Next page]や[Previous page]のリンクを表示するようにスタイルシートを修正する必要がある(リスト3)。そして次に、XsltCommandExample.aspxファイルのPage_Loadイベントをリスト4のように修正する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ここまでの手順を確認してみよう。ブラウザにWebフォームのURLを入力し、結果を見てほしい(図2)。


図2■実行時パラメータによるページングの実装。ページングを実装するためには、スタイルシートに対して適切なパラメータを渡す必要がある。ここでは1ページ当たり10レコードしか表示されていない。なぜならば、recordsPerPageパラメータに10が指定されているからだ(訳注:リスト4ではrecordsPerPageパラメータに10が設定されている)

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る