xsl-list
[Top] [All Lists]

Re: Getting position of parent

2003-02-20 10:48:18
Thanks for the suggestion Jeni. I found an even easier answer though, I had a pagenumber attribue in the page
node already. Doh!@

<xsl:variable name="pageNumber"
   select="../../@Pagenumber" />

was all I needed


Jeni Tennison wrote:

Hi Geoff,

So what I want to do is make $pageNumber = position() -1 for the
page node while I am in the (grandchild) Field node. How can I
accomplish this? I'm scratching my head on this one

Try counting the number of preceding sibling Page elements the
ancestor Page element has and adding one to get the position:

 count(ancestor::Page/preceding-sibling::Page) + 1

By the way, you might find your template a bit clearer if you used an
attribute value template to create the style attribute:

<xsl:template match="Field">
 <xsl:variable name="pageNumber"
   select="count(ancestor::Page/preceding-sibling::Page) + 1" />
 <xsl:variable name="top"
   select="@Top * 0.06666 + ($pageNumber * $pageHeight)" />
 <div style="position: absolute;
             top: {$top};
             left: {(_at_)Left * 0.06666};
             font-size: {(_at_)FontSize}pt;
             font-family: {(_at_)FontFamily};">
   <xsl:value-of select="." />
 </div>
</xsl:template>

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

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





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