xsl-list
[Top] [All Lists]

Re: [xsl] Stumped: XSL 1.0 recursive template

2010-11-16 14:33:15
On Tue, Nov 16, 2010 at 2:09 PM, daniel whitney 
<dbf(_dot_)whitney(_at_)gmail(_dot_)com> 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[(_at_)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[(_at_)colformat='colbody'][1]">
            <xsl:call-template name="financialTemp">
              <xsl:with-param name="nextRecordParam"
select="following-sibling::RECORDSECTION[(_at_)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() &gt; 1]"/>
        <xsl:with-param name="fincodeParam" select="$nextRecordParam/@desc"/>
      </xsl:call-template>
    </xsl:if>
  </xsl:template>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>