我遇到了一个问题,显示"fo:table-row缺少子元素">。我知道这与在下面的模板中运行xsl:for-each有关。但我需要浏览所有布尔值并在表格中报告它。如何在表中使用for-each ?或者这是不可能的?
<xsl:template match="boolean">
<fo:table-row>
<xsl:for-each select='boolean'>
<fo:table-cell>
<fo:block>
<xsl:value-of select="$caption" />
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:choose>
<xsl:when test="bml:Value='0'">No</xsl:when>
<xsl:otherwise>Yes</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</xsl:template>
这给了我一个"fo:表行缺少子元素">。如果我删除for-each,它会把一个布尔值放在我创建的表的正确位置,我只是不能让它遍历输出中的所有布尔值来获取图的每个布尔值。关于如何迭代和使用for-each表有什么想法吗?
match="boolean"
表示上下文项是<boolean>
。除非<boolean>
包含<boolean>
,否则<xsl:for-each>
不会选择任何东西。
xsl:for-each
并使选择boolean
的xsl:apply-templates
选择所有boolean
,那么模板将用于每个boolean
,您将得到一堆表行,如预期的。