ver.1サポートサイト

一覧表・単票 > ソースデザイン > XSLの使い方

最終更新日:2020年11月20日

XSLの記述方法をご案内いたします。
ここで、前述のXPathを使います。

テンプレート

XSLでは、情報を抜き出し処理をしたい数だけ「テンプレート」を作成します。
「テンプレート」の中に、どこから情報を抜き出すのか、どういう処理をするのかを記述します。
一覧表作成直後のXSLファイルにも、<xsl:template></xsl:template>の組み合わせが複数個記述されていることがご確認いただけます。

テンプレートの作成方法は2通りあります。

XMLファイル内の要素や属性を指定する。

XPathで指定した対象に対する処理を定義する。

<xsl:template match="Xpath">処理</xsl:template>

テンプレートを実行する。

<xsl:apply-templates select="Xpath" />

テンプレートに名称をつけ、後で呼び出す。

テンプレートに名称をつけ、処理を定義する。

<xsl:template name="テンプレート名">処理</xsl:template>

テンプレートを実行する。

<xsl:call-template name="テンプレート名">処理</xsl:call-template>

条件や処理内容

テンプレート内で、情報を抜き出す条件や処理を記述する方法をご案内します。

変数を作成する。

<xsl:variable name="変数名">変数の値</xsl:variable>

「$変数名」として使います。
例)<xsl:variable name=”flg”>1</xsl:variable> の場合、「$flg」

引数を作成する。

<xsl:param name="引数名" />

「$引数名」として使います。
例)<xsl:param name=”value” />の場合、「$value」

引数を渡す。

既存のテンプレートを実行する<xsl:call-template>の中で、<xsl:with-param>を使って、テンプレートに引数を渡します。

<xsl:with-param name="引数名" select="'引数の値'" />

例)「テキスト」と表示する場合

テンプレートを作成

<xsl:template name="sample">
<xsl:param name="value" />
<xsl:text>$value</xsl:text>
</xsl:template>

テンプレートを実行

<xsl:call-template name="sample">
<xsl:with-param name="value" select="'テキスト'" />
</xsl:call-template>

条件式「もし・・・の場合」

<xsl:if test = “条件式”>処理</xsl:if>

例)属性selectedの値がtの場合、HTMLの要素に属性「checked」を追加する場合

<xsl:if test="@selected = 't'">
<xsl:attribute name="checked">t</xsl:attribute>
</xsl:if>

固定で書いたHTML要素に属性を追加する

<xsl:attribute name = “属性名”>属性の値</xsl:attribute>

例)HTMLのdiv要素にclass=”sample”を追加する場合

<div>
<xsl:attribute name = “class”>sample</xsl:attribute>
</div>

HTML

<div class=”sample”>
</div>

XMLファイル内の要素の値や属性の値を抜き出す。

<xsl:value-of select = “XPath” />

例)時刻(時分)型フィールドの値を取得する場合

サンプルXML

<usr_openTime timezone_digit="+0900" timezone_name="JST">
<full_text>00時00分</full_text>
<hour meridiem="am" semidiurnal="12">00</hour>
<minute>00</minute>
</usr_openTime>

XSL

<xsl:value-of select = “usr_openTime/full_text” />

ブラウザでの表示

00時00分

処理を繰り返し実行する。

<xsl:for-each select = “XPath”>処理</xsl:for-each>

いくつかの条件の中で1つに合致した場合、処理を実行する。

<xsl:choose>
<xsl:when test = “条件式”>処理</xsl:when>
<xsl:when test = “条件式”>処理</xsl:when>
<xsl:when test = “条件式”>処理</xsl:when>
<xsl:otherwise>処理</xsl:otherwise>
</xsl:choose>

文字列を表示する。

<xsl:text>文字列</xsl:text>