xsl-list
[Top] [All Lists]

RE: fun with fo tab formatting

2003-12-15 15:48:57
-----Original Message-----
From: Kyle Partridge

Don't mean to be a pest, but can anyone help with this??  I can't seem
to get this working...

<snip />

First, it won't let me save this, because it doesn't like me opening
tags in one statement and closing them in another...

That seems --desirable, in most cases. Meaning: basically, if you run into
situations like this, where you're starting and ending elements in different
nodes, that's almost a guarantee there is _something_ icky about the
design...

<xsl:template match="ws:tab">
  <xsl:if test="position()=1">
      <fo:table>
        <fo:table-body>
          <fo:table-row>
  </xsl:if>

No, no, no... gathering from your original post, what you want is something
like :

<xsl:template match="ws:p">

  <fo:table layout="fixed" width="100%">
    <!-- columns... -->
    <!-- practical way to do it in this case, would be to match    -->
    <!-- the first br and create a column for every preceding tab  -->
    <!-- use a moded template for clarity                          -->
    <xsl:apply-templates select="br[1]" mode="colcreate" />

    <fo:table-body>
      <xsl:apply-templates select="br" mode="rowcreate" />
    </fo:table-body>
  </fo:table>

</xsl:template>

<xsl:template match="br" mode="colcreate">

  <xsl:variable name="cols" select="count(preceding-sibling::tab)" />
  <xsl:for-each select="preceding-sibling::tab">
    <fo:table-column column-width="proportional-column-width({$cols})" />
  </xsl:for-each>

</xsl:template>

<xsl:template match="br" mode="rowcreate">

  <xsl:variable name="cols" select="count(preceding-sibling::tab)" />

  <fo:table-row>
    <xsl:for-each select="preceding-sibling::tab[position() &lt;= $cols]">
      <fo:table-cell>
        <xsl:value-of select="following-sibling::text()[1]" />
      </fo:table-cell>
    </xsl:for-each>
  </fo:table-row>

</xsl:template>

Second...I've reached a wall with my new "get-width" template:

If I guess correctly, you won't be needing this...?


Hope this helps!

Cheers,

Andreas


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>