XSL 为内联容器结果创建 fo 表
XSL creating fo-tables for inline-container results
我有一种情况需要显示 xml 结果(布尔值、日期、i
我想在 table 中显示结果,如果不完全重建整个过程,我想不出解决这个问题的好方法。
这是我如何处理布尔数据类型的示例。每个数据类型都是根据下面的示例构建的。
这是应用所有模板(布尔值等)的代码。我想弄清楚我是否可以为 apply-templates select="."
创建一个 Table 显示,或者我是否需要编辑每个数据类型以在 table.[=11= 中显示]
重要的是不要错过 fo:table/fo:table-body/fo:table-row/fo:table-cell
层次结构中的任何级别。
如果我对你的代码的理解正确,你想要这样的东西:
<fo:table>
<fo:table-column column-width="{$adjustedWidth}in" />
<fo:table-column column-width="{$adjustedWidth}in" />
<fo:table-body>
<xsl:for-each select="bml:Parameter[not(bml:ID='EndConditionMatrix' or
bml:ID='PVATable' or
bml:ParameterSubType='NoReport')]">
<xsl:sort select="bml:SortOrder" data-type="number"/>
<xsl:apply-templates select="." />
</xsl:for-each>
</fo:table-body>
</fo:table>
和:
<xsl:template match="bml:DataType='boolean']">
<fo:table-row>
<fo:table-cell>
<fo:block xsl:use-attribute-sets="paramCaption">
<xsl:value-of select="$caption" />
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block xsl:use-attribute-sets="paramValue">
<xsl:choose>
<xsl:when test="bml:Value/bml:ValueString='0'">No</xsl:when>
<xsl:otherwise>Yes</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:template>
这并不能说明你的 start-indent
,但它应该能让你朝着你想要的方向前进。
我有一种情况需要显示 xml 结果(布尔值、日期、i
我想在 table 中显示结果,如果不完全重建整个过程,我想不出解决这个问题的好方法。
这是我如何处理布尔数据类型的示例。每个数据类型都是根据下面的示例构建的。
这是应用所有模板(布尔值等)的代码。我想弄清楚我是否可以为 apply-templates select="."
创建一个 Table 显示,或者我是否需要编辑每个数据类型以在 table.[=11= 中显示]
重要的是不要错过 fo:table/fo:table-body/fo:table-row/fo:table-cell
层次结构中的任何级别。
如果我对你的代码的理解正确,你想要这样的东西:
<fo:table>
<fo:table-column column-width="{$adjustedWidth}in" />
<fo:table-column column-width="{$adjustedWidth}in" />
<fo:table-body>
<xsl:for-each select="bml:Parameter[not(bml:ID='EndConditionMatrix' or
bml:ID='PVATable' or
bml:ParameterSubType='NoReport')]">
<xsl:sort select="bml:SortOrder" data-type="number"/>
<xsl:apply-templates select="." />
</xsl:for-each>
</fo:table-body>
</fo:table>
和:
<xsl:template match="bml:DataType='boolean']">
<fo:table-row>
<fo:table-cell>
<fo:block xsl:use-attribute-sets="paramCaption">
<xsl:value-of select="$caption" />
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block xsl:use-attribute-sets="paramValue">
<xsl:choose>
<xsl:when test="bml:Value/bml:ValueString='0'">No</xsl:when>
<xsl:otherwise>Yes</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:template>
这并不能说明你的 start-indent
,但它应该能让你朝着你想要的方向前进。