Subject: RE: [xsl] RE:"*NEVER* use for-each" From: "FINLEY, Mike" <Mike.FINLEY@xxxxxxxxxx> Date: Wed, 28 Feb 2001 09:15:55 -0000 |
Ok, but a rule '*NEVER* ...' is not helpful without a 'because ...' or 'unless ...' clause. Anyway I learnt a little through looking at sort, but am not convinced that templates are easier for what I was doing (I'd have to sort out using modes as well, I think). For someone to tell me I'm wrong, here is the relevant portion of my XSL: <xsl:template match="INDEX"> <H3>Lessons by title</H3> <TABLE> <xsl:for-each select="REPORT"><xsl:sort select="TITLE"/> <!-- generate table row for index --> <TR> <TD><A><xsl:attribute name="href">/is/corp/tech/lessons/l<xsl:value-of select="@file"/>.asp</xsl:attribute><xsl:value-of select="TITLE"/></A></TD> <TD><xsl:value-of select="CONTACT"/></TD> </TR> </xsl:for-each> </TABLE> <H3>Lessons by family</H3> <TABLE> <xsl:for-each select="REPORT"><xsl:sort select="FAMILY"/><xsl:sort select="TITLE"/> <!-- generate table row for index --> <TR> <TD><xsl:value-of select="FAMILY"/></TD> <TD><A><xsl:attribute name="href">/is/corp/tech/lessons/l<xsl:value-of select="@file"/>.asp</xsl:attribute> <xsl:value-of select="TITLE"/></A> </TD> <TD><xsl:value-of select="CONTACT"/></TD> </TR> </xsl:for-each> </TABLE> </xsl:template> and an example REPORT element (INDEX holds a sequence of REPORT elements) <REPORT file="0001"> <TITLE>title text</TITLE><FAMILY>grouping</FAMILY><CONTACT>name</CONTACT> </REPORT> thanks, mike -----Original Message----- From: Chris Bayes [mailto:Chris@xxxxxxxxxxx] Sent: 27 February 2001 17:41 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] RE:"*NEVER* use for-each" Mike, When a lot of people come to XSLT they see <xsl:for-each> and think "That's what I need" when it most times isn't. They should be using templates. As they start to develop their template they add <xsl:if> and <xsl:choose> all over the place within the <xsl:for-each> to get round not using templates in the first place. So to stop people making a bealine for <xsl:for-each> I always say "Beginners rule #1 *NEVER* use for-each". Daniel's solution to his own problem is ><xsl:value-of >select="ANNUALSNAPSHOT[3]/CONSENSUSVALUE/ESTIMATEDATA/child::*[position()=$ I >ndex]" /> >Now I know might not be pretty, but it DOES return what I want. $Index will >range from 1 to 9 Next he will be asking how he can increment his $Index variable which he can't do because you can't increment variables without using recursion. As he hasn't got the hang of templates yet explaining to him how to do recursion is not going to be easy. To quote Francis in another thread >People on this list find themselves bailing out people who've sailed on >to the same old rocks, and try to let others know that they're sailing >in that direction, that why we make suggestions of this kind. Ciao Chris XML/XSL Portal http://www.bayes.co.uk/xml >As a beginner, who has just used for-each to solve a problem, why should I >never use it? > >(OK, I admit having checked the <xsl:sort> description in Mike Kay's book I >could probably have used another template, but why is that preferable to >using for-each?) > >mike > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list ___________________________________________________________________________ This email is confidential and intended solely for the use of the individual to whom it is addressed. Any views or opinions presented are solely those of the author and do not necessarily represent those of Sema. If you are not the intended recipient, be advised that you have received this email in error and that any use, dissemination, forwarding, printing, or copying of this email is strictly prohibited. If you have received this email in error please notify the Sema UK Helpdesk by telephone on +44 (0) 121 627 5600. ___________________________________________________________________________ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] RE:"*NEVER* use for-each", David Schach | Thread | [xsl] XSLT: Xpath: sets: position(), Lee Goddard |
[xsl] XSLT: XPath: Siblings, Lee Goddard | Date | Re: [xsl] pruning nodes not in xpat, Jeni Tennison |
Month |