This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: breaking sorted material into subsections


For interest, this does not appear to work in Oracle XSLT 2.0.2.8 or
2.0.2.9. Having played around with a similar variation on this solution
the
problem seems to be when the expression in the 'use' attribute of the
key declaration
references a function, i.e. it is OK if a simple element or attribute
reference is used. As soon as the key is referenced in the template an
'XSL-1036 :
Cannot convert string to node set' message is given. A shame, as this
method allows the 'index' to be built without concern to the source data
order. 

Regards
--
Nick Browne
Slipstone Ltd
P.S. (Will be) Reported to Oracle

Oliver Becker wrote:

> ..... Adapted to Eric's problem I get
>
> <xsl:key name="letters" match="index" use="substring(@entry,1,1)" />
> <xsl:template match="IndexEntryData">
>    <xsl:for-each
>         select="index[count(. | key('letters',
>                                     substring(@entry,1,1))[1]) = 1]">
>       <xsl:sort select="@entry" />
>       <xsl:variable name="initial" select="substring(@entry,1,1)" />
>       <h2> <xsl:value-of select="$initial" /> </h2>
>       <xsl:for-each select="key('letters', $initial)">
>          <xsl:sort select="@entry" />
>          <p> <xsl:value-of select="@entry" /> </p>
>       </xsl:for-each>
>    </xsl:for-each>
> </xsl:template>


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]