[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: questions regarding the use of position()
> there are two questions; > firstly, is there a way to refer back to the main position when you are > looking at its child element? e.g. > > <xsl:template match="body1"> > the position of main is <xsl:value-of select="position()"/> > </xsl:template> > this approach will only give the position of the body1, but is there are > ways to display the position of main when you are in the body1 template? No, because position() is context-dependent. I.e. using <xsl:apply-templates/> in the template matching Main, position() in template matching body1 returns 2 (because of 1st node <head>). Or even 4, because of empty text nodes in front of <head> and <body1>. But writing <xsl:apply-templates select="body1"/> and your position() will return 1. But you can count the preceding-sibling nodes of your parent: <xsl:value-of select="count(../preceding-sibling::Main) + 1"/> > secondly, is there are ways of creating an id for the body1 element? (how > about the use of xsl:id? not so sure about this) I don't know of any xsl:id. But there is the way using generate-id(): <xsl:value-of select="generate-id()"/> You can specify a XPath-expression as argument for generate-id(), no argument means current node. Hope this helps, Joerg XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|