Re: [xsl] Re: AW: AW: global variable and position() once more

Subject: Re: [xsl] Re: AW: AW: global variable and position() once more
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Tue, 2 Sep 2003 00:51:01 -0700 (PDT)
> You guys are really masters of XPath...Let me read this slowly and try
> to understand...
> Do you have any book or tutorial with this tricky constructions??
> Thanks a lot!
> lizet

Actually there was a small omission in the code and this would not allow
the last trailers to be copied.

Here's the corrected code (the key definitions are omitted as they are the
same:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:key name="kStart"
  match="text()[preceding-sibling::*[1][self::br]]"
  use="contains(., '.')
     and
       number(substring-before(., '.'))
      =
       number(substring-before(., '.'))"/>

  <xsl:key name="kTrail"
  match="text()[preceding-sibling::*[1][self::br]]"
   use="generate-id(
            preceding-sibling::text()
            [
             contains(., '.')
           and
             number(substring-before(., '.'))
            =
             number(substring-before(., '.'))
            ]
            [1]
                   )"/>

  <xsl:template match="/">
    <xsl:for-each select="key('kStart', 'true')">
     <Claim>
      <xsl:copy-of select="normalize-space()"/>
      <xsl:variable name="vLastNumbered" select="position() = last()"/>
      <xsl:for-each select="key('kTrail', generate-id())">
        <xsl:if test="$vLastNumbered or not(position() = last())">
          <xsl:copy-of
           select="concat(substring(.,1,1),
                          normalize-space(substring(.,2))
                          )"/>
        </xsl:if>
      </xsl:for-each>
     </Claim>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

I believe that two very good books on XSLT are the following:

  "Beginning XSLT" by Jeni Tennison

  "XSLT Programmer's Reference" by Michael Kay.









=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

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


Current Thread