This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: position()


> Well yes, but I would have thought that xsl like
>
> <xsl:template match="object">
> 	<xsl:value-of select="concat(position(),' ',@name)"/>
> </xsl:template>
>
> on input of
>
> <objects>
> 	<!-- hello -->
> 	<object name="first"/>
> 	<object name="second"/>
> 	<!-- hello -->
> 	<object name="third"/>
> 	<object name="fourth"/>
> </objects>
>
> Would produce
>
> 1 first
> 2 second
> 3 third
> 4 fourth
>
> and not
>
> 2 first
> 3 second
> 5 third
> 6 fourth
>
> which seems to be the case.

The output depends entirely on how the template rule is invoked: position()
is the position within the set of nodes being processed by the most recent
call on <xsl:apply-templates/> or <xsl:for-each>.

>
> Also on a related point how can I output the preceding node if and
> only if it is a comment.
>
<xsl:copy-of select="preceding-sibling::node()[1][self::comment()]"/>

Mike Kay
Software AG


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]