Subject: Re: [xsl] XPath to find first cell in first row of table From: "G. Ken Holman g.ken.holman@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 22 Sep 2016 02:52:08 -0000 |
Content-Transfer-Encoding: 7bit
I have an XML table like below from which I am constructing a roughly matching XSL-FO table, and I need to insert something extra only in the first cell of the first row, as indicated:
<table> <title>My title</title> <tgroup cols="3"> <colspec colname="C1" /> <colspec colname="C2" /> <colspec colname="C3" /> <thead> <row> <entry> text </entry> <entry> text </entry> <entry> text </entry> </row> </thead> <tbody> <row> <entry> <!-- insert something extra here only --> text </entry> <entry> text </entry> <entry> text </entry> </row> <row> <entry> text </entry> <entry> text </entry> <entry> text </entry> </row> </tbody> </tgroup> </table>
There are templates matching each element: table, tbody, row, entry, etc. In the <entry> template, how might I check if the current entry is the first one in the first row? Or is there a better way?
<xsl:template match="entry">
<xsl:if test="MAGICAL XPATH that tells if it's the first cell in the first row">
<fo:block> insert special things </fo:block>
</xsl:if>
<fo:block xsl:use-attribute-sets="entry">
...
</fo:block>
</xsl:template>
<xsl:template match="entry"> <fo:table-cell> <xsl:if test="not(preceding-sibling::entry) and not(../preceding-sibling::row) and ../parent::tbody"> <fo:block> insert special things </fo:block> </xsl:if> <fo:block xsl:use-attribute-sets="entry"> ... </fo:block> </fo:table-cell> </xsl:template>
<xsl:key match="tbody/row[1]/entry[1]" use="generate-id(.)" name="firstCells"/>
<xsl:template match="entry"> <fo:table-cell> <xsl:if test="key('firstCells',generate-id(.))"> <fo:block> insert special things </fo:block> </xsl:if> <fo:block xsl:use-attribute-sets="entry"> ... </fo:block> </fo:table-cell> </xsl:template>
-- Check our site for free XML, XSLT, XSL-FO and UBL developer resources | Streaming hands-on XSLT/XPath 2 training @US$45: http://goo.gl/Dd9qBK | Crane Softwrights Ltd. _ _ _ _ _ _ http://www.CraneSoftwrights.com/s/ | G Ken Holman _ _ _ _ _ _ _ _ _ _ mailto:gkholman@xxxxxxxxxxxxxxxxxxxx | Google+ blog _ _ _ _ _ http://plus.google.com/+GKenHolman-Crane/posts | Legal business disclaimers: _ _ http://www.CraneSoftwrights.com/legal |
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath to find first cell , Graydon graydon@xxxx | Thread | Re: [xsl] XPath to find first cell , Mark Giffin m1879@xx |
Re: [xsl] XPath to find first cell , Graydon graydon@xxxx | Date | Re: [xsl] XPath to find first cell , Mark Giffin m1879@xx |
Month |