はじめまして。現在製作中のサイトに導入しようかいろいろ試しているところなのですが、
リストページ内にデータ項目から指定した項目を繰り返さずに、見出しとして表示したいのですがうまくいきません。。
エントリーデータとともに繰り返して表示されてしまいます。
(エントリー項目の数だけ見出しも繰り返される)
<xsl:for-each select="entry">
の書き方がまちがっているのでしょうか???
お手数ですがご教授いただけると助かります。
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entrylist">
<!--ここから-->
<xsl:for-each select="entry">
<h3>
<xsl:if test="type='new'">最新入荷</xsl:if>
<xsl:if test="type='tokusen'">特選中古品</xsl:if>
<xsl:if test="type='okaidoku'">お買い得情報</xsl:if>
<xsl:if test="type='shobun'">展示処分品</xsl:if>
</h3>
</xsl:for-each>
<!--ここまで-->
<xsl:for-each select="navi">
<div class="navi_next">
<xsl:for-each select="prev">
<a href="{@href}"><<先の10アイテム</a>|
</xsl:for-each>
<xsl:if test="not(prev)">
<a href="{@href}"><<先の10アイテム</a>|
</xsl:if>
<xsl:for-each select="next">
<a href="{@href}">前の10アイテム>></a>
</xsl:for-each>
<xsl:if test="not(next)">
<a href="{@href}">前の10アイテム>></a>
</xsl:if>
</div>
</xsl:for-each>
<br /><br />
<xsl:for-each select="entry">
<div>
<a href="detail.php{@href}"><img src="../{photo}" height="60" align="left" /></a>
商品名:<a href="detail.php{@href}"><xsl:value-of select="name" disable-output-escaping="yes" /></a>|メーカー:<xsl:value-of select="maker" disable-output-escaping="yes" />
<xsl:if test="@daysago<7">|New!</xsl:if><br/>
価格:<xsl:value-of select="price" disable-output-escaping="yes" /> |
商品カテゴリ:<xsl:if test="category='amp'">アンプ</xsl:if>
<xsl:if test="category='avamp'">AVアンプ</xsl:if>
<xsl:if test="category='speaker'">スピーカー</xsl:if>
<xsl:if test="category='digital'">デジタル機器</xsl:if>
<xsl:if test="category='anolog'">アナログ機器</xsl:if>
<xsl:if test="category='visual'">ビジュアル</xsl:if>
<xsl:if test="category='other'">その他</xsl:if>
<br />
<xsl:value-of select="substring( description, 1, 60 )" disable-output-escaping="yes" />...
<br /><br /><br />
</div>
</xsl:for-each>
<br /><br />
<xsl:for-each select="navi">
<div class="navi_next">
<xsl:for-each select="prev">
<a href="{@href}"><<先の10アイテム</a>|
</xsl:for-each>
<xsl:if test="not(prev)">
<a href="{@href}"><<先の10アイテム</a>|
</xsl:if>
<xsl:for-each select="next">
<a href="{@href}">前の10アイテム>></a>
</xsl:for-each>
<xsl:if test="not(next)">
<a href="{@href}">前の10アイテム>></a>
</xsl:if>
</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
リストページにifで指定したデータ項目を繰り返さずに表示したい
解決しました。。
リファレンスを読み直していたところ該当記事がありましたので
自己レスを。。お騒がせしました。
<xsl:for-each select="entry">
<h3>
<xsl:if test="type='new'">最新入荷</xsl:if>
<xsl:if test="type='tokusen'">特選中古品</xsl:if>
<xsl:if test="type='okaidoku'">お買い得情報</xsl:if>
<xsl:if test="type='shobun'">展示処分品</xsl:if>
</h3>
</xsl:for-each>
を
<xsl:for-each select="group">
<xsl:if test="@key='type'">
<h3>
<xsl:if test="@value='new'">最新入荷</xsl:if>
<xsl:if test="@value='tokusen'">特選中古品</xsl:if>
<xsl:if test="@value='okaidoku'">お買い得情報</xsl:if>
<xsl:if test="@value='shobun'">展示処分品</xsl:if>
</h3>
</xsl:if>
</xsl:for-each>
とすることで受け取ったパラメータによって吐き出す表示を変更することができました。
自己レスを。。お騒がせしました。
<xsl:for-each select="entry">
<h3>
<xsl:if test="type='new'">最新入荷</xsl:if>
<xsl:if test="type='tokusen'">特選中古品</xsl:if>
<xsl:if test="type='okaidoku'">お買い得情報</xsl:if>
<xsl:if test="type='shobun'">展示処分品</xsl:if>
</h3>
</xsl:for-each>
を
<xsl:for-each select="group">
<xsl:if test="@key='type'">
<h3>
<xsl:if test="@value='new'">最新入荷</xsl:if>
<xsl:if test="@value='tokusen'">特選中古品</xsl:if>
<xsl:if test="@value='okaidoku'">お買い得情報</xsl:if>
<xsl:if test="@value='shobun'">展示処分品</xsl:if>
</h3>
</xsl:if>
</xsl:for-each>
とすることで受け取ったパラメータによって吐き出す表示を変更することができました。