cocoさん、ご質問ありがとうございます。webmasterです。
タグの属性値(value="????"のような部分)の中に、条件によって異なる値を入れる、というようなテンプレートは、デザイン定義用の言語である「XSL」についてかなり慣れていないと難しい為、マニュアルでは説明しておらず、お手数をおかけしております。
属性値を指定するには、すでにお分かりの通り、value="{menulist_cate}"のように中括弧{}を使って項目名を指定して頂くのですが、今回のようにmenulist_cateの内容によって異なる文字列(土地/建物/賃貸)を属性値に指定する、という場合、xsl:attributeという命令タグを使います。
xsl:attributeの使い方については、ネットなどで調べて頂いた方が早いかと思いますが、たとえば例を挙げると以下のようなものになります。
コード: 全て選択
<a>
<xsl:attribute name="href"><xsl:value-of select="url" /></xsl:attribute>
Jump to...
</a>
意味としては、<a>要素に「href」という名前の属性を追加し、その中に「url」という項目の中身を設定する、というものです。
出力例は、
<a href="http://test.test">Jump to...</a>
のような感じになります。
これは、実は、以下のデザイン定義とまったく同等です。
コード: 全て選択
<a href="{url}">Jump to...</a>
ですので、通常はこの方法で構わないのですが、もし、urlの内容が、「yahoo」「google」「bing」などの文字列で、それに応じて対応するURLを出力しなければならない、というような場合には、xsl:attributeを使う必要があります。
コード: 全て選択
<a>
<xsl:attribute name="href">
<xsl:if test="url='yahoo'">http://yahoo.co.jp</xsl:if>
<xsl:if test="url='google'">http://google.co.jp</xsl:if>
<xsl:if test="url='bing'">http://bing.com</xsl:if>
</xsl:attribute>
Jump to...
</a>
xsl:attributeを使うと、属性値の中に入れる値をxsl:ifやxsl:value-ofなどのいつもの方法を使って指定することができて便利です。
これを踏まえまして、今回のケースに適用しますと、次のようになります。
☆適用前
コード: 全て選択
<xsl:for-each select="entry">
<input type="checkbox" name="ご希望メニュー" value="◆{menulist_name}" id="{menulist_name}" />
<LABEL for="{menulist_name}"><xsl:value-of select="menulist_name" disable-output-escaping="yes" /></LABEL><br />
</xsl:for-each>
☆適用後
コード: 全て選択
<xsl:for-each select="entry">
<input type="checkbox" name="ご希望メニュー" id="{menulist_name}" />
<xsl:attribute name="value">◆<xsl:value-of select="menulist_name" disable-output-escaping="yes" /></xsl:attribute>
<LABEL for="{menulist_name}"><xsl:value-of select="menulist_name" disable-output-escaping="yes" /></LABEL><br />
</xsl:for-each>
この時点ではまだ、menu_cateが組み込まれていません。組み込むと、以下のようになります。
☆menu_cate組み込み後
コード: 全て選択
<xsl:for-each select="entry">
<input type="checkbox" name="ご希望メニュー" id="{menulist_name}">
<xsl:attribute name="value">
<xsl:for-each select="//group">
<xsl:if test="@key='menu_cate'">
【
<xsl:if test="@value='1'">土地</xsl:if>
<xsl:if test="@value='2'">建物</xsl:if>
<xsl:if test="@value='3'">賃貸</xsl:if>
】
</xsl:if>
</xsl:for-each>
◆<xsl:value-of select="menulist_name" disable-output-escaping="yes" />
</xsl:attribute>
</input>
<LABEL for="{menulist_name}"><xsl:value-of select="menulist_name" disable-output-escaping="yes" /></LABEL><br />
</xsl:for-each>
menu_cateはグループ絞込み条件ですので、本来であれば<xsl:for-each select="entry">の中には記述できないのですが、以下のように<xsl:for-each select="//group">と、groupの前に//をつけることで、無理やりentryの中で使っています(この方法はリファレンスマニュアルに記載されていません)。
以上、かなり複雑な方法の為、ぱっと見て分からない部分も多々あるかと思いますが、ご不明な点がありましたらまたご質問頂ければ幸いです。