Subject: //* and position() From: Mike Brown <mike@xxxxxxxx> Date: Wed, 6 Sep 2000 20:35:31 -0600 (MDT) |
Someone explain this to me: <xsl:template match="/"> <xsl:variable name="all_elements" select="//*"/> <xsl:variable name="first_3_elements" select="//*[position() < 3]"/> <xsl:text>
</xsl:text> <xsl:comment> selecting as $first_3_elements </xsl:comment> <xsl:for-each select="$first_3_elements"> <xsl:value-of select="concat('
node ',position(),'=',name(),': ',normalize-space(text()))"/> </xsl:for-each> <xsl:text>
</xsl:text> <xsl:comment> selecting as $all_elements[position() < 3] </xsl:comment> <xsl:for-each select="$all_elements[position() < 3]"> <xsl:value-of select="concat('
node ',position(),'=',name(),': ',normalize-space(text()))"/> </xsl:for-each> <xsl:text>
</xsl:text> <xsl:comment> selecting directly as //*[position() < 3] </xsl:comment> <xsl:for-each select="//*[position() < 3]"> <xsl:value-of select="concat('
node ',position(),'=',name(),': ',normalize-space(text()))"/> </xsl:for-each> </xsl:template> The first and 3rd methods return all elements, regardless of position. The second method returns only the first 2 elements. Same results in XT and SAXON. - Mike ____________________________________________________________________ Mike J. Brown, software engineer at My XML/XSL resources: webb.net in Denver, Colorado, USA http://www.skew.org/xml/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
xsl-fo: Setting Content of First Pa, Christopher A. Brook | Thread | Re: //* and position(), Gary L Peskin |
xsl-fo: Setting Content of First Pa, Christopher A. Brook | Date | addendum, Mike Brown |
Month |