Subject: Re: [xsl] Stumped: XSL 1.0 recursive template From: daniel whitney <dbf.whitney@xxxxxxxxx> Date: Wed, 17 Nov 2010 09:31:42 -0500 |
Thanks for the response Brandon. But I'm still having problems understanding what's happening here. With the example I provided the attribute values I am comparing are: 60, 60.09, 60.09, 60.09, 80. The comparisons being returned are: False, True, True, True. It's the last test evaluating to True that confuses me. Why when I'm on the last desc value of 60.09 and the following-sibling value is 80 (which is the last RECORDSECTION in the transform) does it evaluate to TRUE? As a test I changed all the desc values so that they were unique. I ran the transform and every test came back True except for the first one. So I fooled around with your suggestion and found that by putting the [1] when I recusively calling the template it worked. But I don't know why. <xsl:call-template name="financialTemp"> <xsl:with-param name="nextRecordParam" select="$nextRecordParam[position() > 1]"/> <xsl:with-param name="fincodeParam" select="$nextRecordParam----[1]----/@desc"/> </xsl:call-template> Thanks, Dan On Tue, Nov 16, 2010 at 3:33 PM, Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, Nov 16, 2010 at 2:09 PM, daniel whitney <dbf.whitney@xxxxxxxxx> wrote: >> Sorry if this gets posted twice ... >> >> I'm stumped. I cannot figure out why the @desc test in the >> financialTemp template is always evaluating to true, when the values >> being output are different. >> I'm simply trying to remove lines with the same desc attribute value >> in the RECORDSECTION[@colformat='colbody'] elements. > > The test is: $fincodeParam = $nextRecordParam/@desc > > This will evaluate to true if the string value of $fincodeParam (the > value of the "desc" attribute of the RECORDSECTION currently being > processed) is equal to the value of the "desc" attribute of ANY > following-sibling RECORDSECTION whose "colformat" attribute has a > value of "colbody". > > I think you'll get what you want by putting a "[1]" before "/@desc" in > the above test. > > -Brandon :) > >> <xsl:for-each select="//RECORDSECTION[@colformat='colbody'][1]"> >> <xsl:call-template name="financialTemp"> >> <xsl:with-param name="nextRecordParam" >> select="following-sibling::RECORDSECTION[@colformat='colbody']"/> >> <xsl:with-param name="fincodeParam" select="@desc"/> >> </xsl:call-template> >> </xsl:for-each> >> >> <xsl:template name="financialTemp"> >> <xsl:param name="nextRecordParam"/> >> <xsl:param name="fincodeParam"/> >> >> <xsl:if test="$nextRecordParam[1]"> >> <xsl:choose> >> <xsl:when test="$fincodeParam = $nextRecordParam/@desc"> > [...] >> </xsl:when> >> <xsl:otherwise> > [...] >> </xsl:otherwise> >> </xsl:choose> >> <xsl:call-template name="financialTemp"> >> <xsl:with-param name="nextRecordParam" >> select="$nextRecordParam[position() > 1]"/> >> <xsl:with-param name="fincodeParam" select="$nextRecordParam/@desc"/> >> </xsl:call-template> >> </xsl:if> >> </xsl:template>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Stumped: XSL 1.0 recursiv, Brandon Ibach | Thread | Re: [xsl] Stumped: XSL 1.0 recursiv, daniel whitney |
Re: [xsl] Was it a bug?, Michael Kay | Date | Re: [xsl] Stumped: XSL 1.0 recursiv, daniel whitney |
Month |