0

配列に要素がある場合はテーブルを表示し、配列が空の場合は別のブロックを表示する必要がありますか? 今は for-each しかありません。私の配列には「アイテム」という名前があります。

<some table header code...>
<xsl:for-each select="items/item">
    <some row code...>
</xsl:for-each>

このような別のバリアントが必要ですが、XSL スタイルです。

<xsl:if list is empty>
    <block> There is no elements!!! </block>
<xsl:else>
    <table code>
</xsl:if>

どうすればできますか?FOP(pdfジェネレーター)の場合に必要です。

4

1 に答える 1

2

あなたはこれを行うことができます:

<xsl:choose>
   <xsl:when test="items/item">
       <xsl:for-each select="items/item">
            <some row code...>
       </xsl:for-each>
   </xsl:when>
   <xsl:otherwise>
       <block>  ... </block>
   </xsl:otherwise>
</xsl:choose>

しかし、これはより良いアプローチです:

<xsl:apply-templates select="items[not(item)] | items/item" />

...

<xsl:template match="items">
   <block> ... </block>
</xsl:template>

<xsl:template match="item">
   <!-- Row code -->
</xsl:template>
于 2013-03-01T12:40:47.190 に答える