xsl:if を動作させられません

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
MIGI
記事: 6
登録日時: 2010年5月18日(火) 10:51

xsl:if を動作させられません

投稿記事 by MIGI » 2010年5月18日(火) 11:22

CMS Designer を大変便利に使わせていただいております m(__)m

早速ですが、xsl:if をうまく動作させることができず、質問させていただきます。
自分自身基本が理解出来ていないと思うので、とんちんかんな質問になっている
かもしれませんが、予めご容赦願います。

実現したいのは、リファレンスマニュアル「5.5.6 データ値の内容によって処理を
変える。」そのものです。
マニュアルを参考にデザイン定義スキーマに記述したところ、CMS Designerの
ソースがそのままはき出されてしまいました。(HTML部分には影響なし)

記述の仕方をいろいろ変えてみたり、xmlconfig.php.inc の $gXsltLib = 0; を
変更してみたりしましたが、解決には至りませんでした。

以下に、デザイン定義部分を記載しますので、ご教授願えましたら幸いです。

コード: 全て選択

<table class="ta1">
<tr>
<td colspan="2"><h3><xsl:value-of select="title" /></h3></td>
<td><span class="price"><xsl:value-of select="price" /></span></td>
</tr>
<tr>
<td width="246" rowspan="2"><a href="{image1}" class="waku" rel="lightbox[$name]">
<img src="{image1}&w=240" alt="" />
</a></td>
<td valign="top"><a href="{image2}" class="waku" rel="lightbox[$name]">
<xsl:if test="not(image2='')"><img src="{image2}&w=100" alt="" /></xsl:if>
<xsl:if test="image2=''">no image</xsl:if>
</a></td>
<td valign="top"><a href="{image3}" class="waku" rel="lightbox[$name]">
<xsl:if test="not(image3='')"><img src="{image3}&w=100" alt="" /></xsl:if>
<xsl:if test="image3=''">no image</xsl:if>
</a></td>
</tr>
<tr>
<td valign="top"><a href="{image4}" class="waku" rel="lightbox[$name]">
<xsl:if test="not(image4='')"><img src="{image4}&w=100" alt="" /></xsl:if>
<xsl:if test="image4=''">no image</xsl:if>
</a></td>
<td valign="top"><a href="{image5}" class="waku" rel="lightbox[$name]">
<xsl:if test="not(image5='')"><img src="{image5}&w=100" alt="" /></xsl:if>
<xsl:if test="image5=''">no image</xsl:if>
</a></td>
</tr>
<tr>
<td colspan="3" valign="top">
<p><xsl:value-of select="comment" disable-output-escaping="yes" /></p>
</td>
</tr>
</table>
以上、よろしくお願い申し上げます。

mojira
パワーユーザー
記事: 34
登録日時: 2007年8月08日(水) 11:41

投稿記事 by mojira » 2010年5月27日(木) 03:35

初めまして。

私が、見た所エラーになるような感じはありませんが、気になった所をいくつか・・

まず、CMSDとは関係ありませんが、以下の内容では、画像が無くてもライトボックス画像を読み込みに行きませんか?

コード: 全て選択

<a href="{image2}" class="waku" rel="lightbox[$name]">
<xsl:if test="not(image2='')"><img src="{image2}&w=100" alt="" /></xsl:if>
<xsl:if test="image2=''">no image</xsl:if>
</a>
↓こんな感じが良いんじゃないでしょうか

コード: 全て選択

<a href="{image2}" class="waku" rel="lightbox[$name]">
<xsl:if test="not(image2='')"><img src="{image2}&w=100" alt="" /></xsl:if>
</a>
<xsl:if test="image2=''">no image</xsl:if>
また、判定文ですが、以下のようにも記述できます。

コード: 全て選択

<a href="{image2}" class="waku" rel="lightbox[$name]">
<xsl:if test="image2/text()"><img src="{image2}&w=100" alt="" /></xsl:if>
</a>
<xsl:if test="image2=''">no image</xsl:if>
他には、

コード: 全て選択

rel="lightbox[$name]" → rel="lightbox[name]"
$などの記述もアヤシイので削除して、試してみてはどうでしょうか。

ではでは。[/code]

返信