1

我有一个 XSLT 2.0,它将 xhtml 表转换为 InDesign XML 表。此 XSLT 计算下面模板 ( )中每行第 7 行中的最大<td>元素数。<tr>max(for $td in //tr return count($td/td))

<xsl:template match="table">
    <xsl:element name="id_table">
        <xsl:attribute name="aid:trows">
            <xsl:value-of select="count(child::*/tr)"/>
        </xsl:attribute>
        <xsl:attribute name="aid:tcols">
            <xsl:value-of select="max(for $td in //tr return count($td/td))"/>
        </xsl:attribute>
        <xsl:apply-templates/>
    </xsl:element>
</xsl:template>

我不知道如何使用 XSLT 1.0 实现这一点——任何想法都将不胜感激!遗憾的是,工作流管道中只有一个 1.0 处理器。


“现代”方式是使用 plone.app.imaging。

例子

<img tal:define="scales context/@@images;
                 thumbnail python: scales.scale('image', width=64, height=64);"
     tal:condition="thumbnail"
     tal:attributes="src thumbnail/url;
                     width thumbnail/width;
                     height thumbnail/height" />

http://plone.org/products/plone.app.imaging/

4

1 回答 1

2
<xsl:attribute name="aid:tcols">
  <xsl:for-each select="//tr">
    <xsl:sort select="count(td)" order="descending"/>
    <xsl:if test="position() = 1">
      <xsl:value-of select="count(td)"/>
    </xsl:if>
  </xsl:for-each>
</xsl:attribute>

应该做。

于 2012-08-13T15:20:17.933 回答