xml-fo を使用して PDF ドキュメントにテーブルを生成しています。
列の数は動的です。列は、テストに合格した場合にのみ表示されます。
テストでは、xml ノードを指す $var1、$var2 などの変数を使用しています。
私は次のようなものを持っています
<xsl:element name="fo:table-row">
<xsl:element name="fo:table-cell" use-attribute-sets="table-cell">
<xsl:attribute name="number-columns-spanned"> **???** </xsl:element>
<xsl:element name="fo:block">Text that spans over columns</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="fo:table-row" use-attribute-sets="headerRow">
<xsl:element name="fo:table-cell" use-attribute-sets="table-cell">
<xsl:element name="fo:block">some value here</xsl:element>
</xsl:element>
<xsl:if test="$var1">
<xsl:element name="fo:table-cell" use-attribute-sets="table-cell">
<xsl:element name="fo:block">maybe some value here 2</xsl:element>
</xsl:element>
</xsl:if>
<xsl:if test="$var2">
<xsl:element name="fo:table-cell" use-attribute-sets="table-cell">
<xsl:element name="fo:block">maybe some value here 3</xsl:element>
</xsl:element>
</xsl:if>
...
</xsl:element>
列全体にまたがるように 1 行目を拡張しています。「number-columns-spanned」は変数であり、合格するテストの数によって異なります。
number-columns-spanned 属性を正しく定義するために、通過する条件の数を動的に抽出する簡単な方法はありますか?