リストボックスやラジオボタンの出し方 | |
XML文書をXSLTで変換して、HTMLのリストボックスを出す例を教えてください。同様に、ラジオボタンの例も教えていただけると助かります。 |
回答/富士ソフトABC株式会社 技術センター
2002/1/18
XSLTスタイルシートを用いて、XML文書をHTMLに変換したときに、図のようにリストボックスやラジオボタンとして出力する例を説明しましょう。
最初に、リストボックスとラジオボタンの選択肢となるデータを格納するXML文書を考えてみます。分かりやすいように「選択肢」要素内に「項目」要素が列挙されただけの簡単な構成とします。それぞれの「項目」要素の内容が、リストボックスとラジオボタンの選択肢となるわけです。「項目」要素の「既定」属性で、表示時に選択されている規定値を設定することにします。
<?xml version="1.0" encoding="shift_JIS"?> |
選択肢が格納されたXML文書 (Select.xml)
|
作成するXSLTスクリプトのアウトラインは、次のようになります。
1: <?xml version="1.0" encoding="shift_JIS"
?> |
最初にルートノードのマッチ(5行目)で、HTML文書のアウトラインを形成してしまいます。要素の内容は、xsl:apply-templatesエレメント(9行目)により外部で指定することを宣言しています。
実際のリストボックスとラジオボタンの生成処理は、14行目の「選択肢」ノードのテンプレートで処理します。
まず、リストボックスの生成処理について見てみます。
1: <select name="listbox" size="4"> |
各行を詳しく見てみます。
1行目: |
リストボックス<select name="ListBox">を宣言しています |
2行目: |
「項目」要素が存在する間の繰り返しを示しています。こうすることで、Select.xml の「項目」要素がすべて処理されます |
3行目: |
リストボックスの選択肢<option>の宣言をしています |
4行目: |
「項目」要素の「既定」属性が「yes」か否かの判断をしています。「既定」属性が「yes」であれば5行目が処理され、「yes」でなければ5行目は処理されません |
5行目: |
<option>のselected属性を設定しています |
7行目: |
「項目」要素の内容を<option>の内容として記述しています |
すると、変換結果としてのHTMLは、以下のような内容が出力されます。
<select name="listbox" size="4"> |
ラジオボタンの生成処理に関しても、生成する対象がリストボックスかラジオボタンかの相違はありますがほぼ同様に記述できます。
1: <xsl:for-each select="項目"> |
基本的な記述方法を説明しましたが、最初の図で示した出力結果を得るための完全な形のSelect.xsl を示しておきます。
上記の説明以外にラジオボタンの生成処理では、アクセスキーの設定やラベルの使用などを盛り込んであります。また、xsl:paramエレメントやxsl:variableエレメントの使用例としても参考にしてください。
<?xml version="1.0" encoding="shift_JIS"
?> <xsl:template match="/"> <xsl:template match="選択肢"> <!-- リストボックスの例 -->
</xsl:stylesheet> |
リストボックスとラジオボタンを表示するXSLの例 (Select.xsl) |
「Ask XML Expert」 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|