XSL

最終更新日時:2007-03-01 17:53:33
XML

XSL


XSLの構文規則は基本的に XML と同様です。
文の先頭も XML と同様です。

 <?xml version="1.0" encoding="euc-jp"?>


次に、スタイルシートの名前空間を指定します。
これが XSL の一番上の階層となります。

 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">


次に、出力形式を指定します。

 <xsl:output method="html" encoding="euc-jp" /> 


ここまでがお決まりの手順で、これ以降が実際に書いていく箇所となります。
全部紹介するときりがないので主なタグの一覧だけ。

xsl:template(属性:match)


template を適用する対象を match で指定します。

 <xsl:template match="/">
 <html>
 <head><title>テレビガイド</title></head>
 <body><xsl:apply-templates select="all" /></body>
 </html>
 </xsl:template>


xsl:apply-templates(属性:select)


該当する template に処理を移します。
select で指定することで、適用する要素を絞ることが可能です。
※例は上記を参照。

xsl:for-each(属性:select)


select で指定したノードの分だけ繰り返し処理を行います。
カレントノードは該当ノードとなります。

 <xsl:for-each select="channel">
 <td></td>
 <td><a href = "anywhere"><xsl:value-of select="." /></a></td>
 </xsl:for-each>


xsl:value-of(属性:select)


select で指定したノードの内容を出力します。
※例は上記を参照

xsl:choose, xsl:when, xsl:otherwise


xsl:choose 内に xsl:when と xsl:otherwise を指定することで条件分岐を行います。
条件を xsl:when の属性値として指定し、該当する場合には xsl:whenの要素を、該当しない場合にはxsl:otherwiseの要素を適用します。

 <xsl:choose>
  <xsl:when test="@type[.='time']">
   time
  </xsl:when>
  <xsl:otherwise>
   notime
  </xsl:otherwise>
 </xsl:choose>


xsl:element(属性:name)


name で指定した名前の要素を作成します。

 <xsl:element name="th">
  <xsl:attribute name="rowspan">
   <xsl:value-of select="span" />
  </xsl:attribute>
  <xsl:value-of select="title" />
 </xsl:element>


xsl:attribute(属性:name)


name で指定した名前の属性を作成します。
※例は上記を参照

xsl:variable(属性:name, select)


name で指定した名前の変数を定義します。
select に式を指定した際にはその値が変数の値となります。



xsl:sort(属性:select)


select で指定したノードをソートします。
select 指定が無い場合にはカレント要素となります。
for-each 後に複数のノードでソートしたい場合には連続で xsl:sort します。

 <xsl:for-each select="time">
  <xsl:sort />
  <xsl:value-of select="." />
 </xsl:for-each>


お問い合わせは 掲示板 にて。