[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
At 2009-03-04 17:27 -0800, Horace Burke wrote:
I have a guess ... but you don't show us your input data.
Okay, so with the built-in template rules, that is in effect doing the following:
So that means if you have the data:
And your template reads as follows:
... then <lang> is *not* the first child node of <some-element> and you won't get your attribute. It is the first element node. The first child node is the text node with the indentation of the <lang> element's start tag. The position() would be returning "2" in the illustration above, which is why you aren't getting initial-page-number="1".
Do you only have element children below <some-element>? If so, you could avoid the built-in template rules and do the following:
... which will only push the element children to your stylesheet.
Or if you only have <lang> children you could do:
Then if the first <lang> is the first element child of <some-element> then the position() function would return "1" and you would get your initial-page-number="1".
I hope I've guessed right and this helps. It is a common issue when dealing with the built-in template rules and indented data.
. . . . . . . . . . . . Ken
Re: [xsl] Starting Initial Page Number on Page Three
Subject: Re: [xsl] Starting Initial Page Number on Page Three From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Wed, 04 Mar 2009 20:48:27 -0500 |
At 2009-03-04 17:27 -0800, Horace Burke wrote:
Yes, I tried my modified template. It didn't change anything. The page number still starts at three "3" -- I am sure I am doing something wrong.
I have a guess ... but you don't show us your input data.
The template is applied by default rules.
Okay, so with the built-in template rules, that is in effect doing the following:
<xsl:template match="some-element"> <xsl:apply-templates/> </xsl:template>
So that means if you have the data:
<some-element> <lang> ....stuff.... </lang> <lang> ....stuff.... </lang> <lang> ....stuff.... </lang> </some-element>
And your template reads as follows:
<xsl:template match="lang"> <fo:page-sequence master-reference="Insrt-body-page">
<xsl:if test="position() = 1">
<xsl:attribute name="initial-page-number">1</xsl:attribute>
</xsl:if>
... then <lang> is *not* the first child node of <some-element> and you won't get your attribute. It is the first element node. The first child node is the text node with the indentation of the <lang> element's start tag. The position() would be returning "2" in the illustration above, which is why you aren't getting initial-page-number="1".
Do you only have element children below <some-element>? If so, you could avoid the built-in template rules and do the following:
<xsl:template match="some-element"> <xsl:apply-templates select="*"/> </xsl:template>
... which will only push the element children to your stylesheet.
Or if you only have <lang> children you could do:
<xsl:template match="some-element"> <xsl:apply-templates select="lang"/> </xsl:template>
Then if the first <lang> is the first element child of <some-element> then the position() function would return "1" and you would get your initial-page-number="1".
I hope I've guessed right and this helps. It is a common issue when dealing with the built-in template rules and indented data.
. . . . . . . . . . . . Ken
-- XQuery/XSLT training in Prague, CZ 2009-03 http://www.xmlprague.cz Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Starting Initial Page Num, Horace Burke | Thread | Re: [xsl] Starting Initial Page Num, Florent Georges |
Re: [xsl] Starting Initial Page Num, Horace Burke | Date | Re: [xsl] Starting Initial Page Num, Florent Georges |
Month |