listitem内でのlist項目数をcountする方法
Posted: 2007年4月21日(土) 01:35
お世話になります。
実装したい内容は、list項目の総数をカウントしてmylistが1以上であれば1項目目の記事にエントリリンクをさせるという方法なのですが
http://cms.al-design.jp/phpbb/viewtopic ... hlight=eid
などを参考に考えて試行錯誤したのですが
1)リスト外でカウントさせて判断する(×)
これだと何も表示されなくなります。
2)リスト内でカウントさせて判断する(×)
これだとlist項目が2個以上のものは、表示されません。
count(mytitle)などにしても同じでした。
3)リスト外でカウントさせて1以上と1の処理を両方書く(○)
上のコードは単純に書きましたが、本当はifで分岐するコードが長くて複雑なため3)は避けたいと思っています。
4)リスト外で記事外にリンク要素を追記する(○)
上記の3か4のようにしないと出来ないものなのか、listitem内でのlist項目数をcountする方法はないのか、どなたかお教えいただけますでしょうか?
大きな勘違いやミスがあるかもしれませんが、宜しくお願いいたします。
実装したい内容は、list項目の総数をカウントしてmylistが1以上であれば1項目目の記事にエントリリンクをさせるという方法なのですが
http://cms.al-design.jp/phpbb/viewtopic ... hlight=eid
などを参考に考えて試行錯誤したのですが
1)リスト外でカウントさせて判断する(×)
コード: 全て選択
<xsl:if test="count(mylist/listitem)>1">
<a href="test.php{@href}">
</xsl:if>
<xsl:for-each select="mylist/listitem">
<xsl:if test="position()=1">
<xsl:value-of select="mytitle" />
</xsl:if>
</xsl:for-each>
<xsl:if test="count(mylist/listitem)>1">
</a>
</xsl:if>
2)リスト内でカウントさせて判断する(×)
コード: 全て選択
<xsl:for-each select="mylist/listitem">
<xsl:if test="position()=1">
<xsl:if test="count(mylist/listitem)>1">
<a href="test.php?eid={../../@id}">
<xsl:value-of select="mytitle" />
</a>
</xsl:if>
<xsl:if test="count(mylist/listitem)=1">
<xsl:value-of select="mytitle" />
</xsl:if>
</xsl:if>
</xsl:for-each>
count(mytitle)などにしても同じでした。
3)リスト外でカウントさせて1以上と1の処理を両方書く(○)
コード: 全て選択
<xsl:if test="count(mylist/listitem)>1">
<a href="test.php{@href}">
<xsl:for-each select="mylist/listitem">
<xsl:if test="position()=1">
<xsl:value-of select="mytitle" />
</xsl:if>
</xsl:for-each>
</a>
</xsl:if>
<xsl:if test="count(mylist/listitem)=1">
<xsl:for-each select="mylist/listitem">
<xsl:if test="position()=1">
<xsl:value-of select="mytitle" />
</xsl:if>
</xsl:for-each>
</xsl:if>
4)リスト外で記事外にリンク要素を追記する(○)
コード: 全て選択
<xsl:for-each select="mylist/listitem">
<xsl:if test="position()=1">
<xsl:value-of select="mytitle" />
</xsl:if>
</xsl:for-each>
<xsl:if test="count(mylist/listitem)>1">
<a href="test.php{@href}">more</a>
</xsl:if>
大きな勘違いやミスがあるかもしれませんが、宜しくお願いいたします。