[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: sorting titles w stopwords but w/o value in every

Subject: Re: sorting titles w stopwords but w/o value in every title node
From: "cking" <cking@xxxxxxxxxx>
Date: Thu, 2 Sep 2004 14:33:06 +0200
how to sort titles
Michael Kay wrote:
>

> > 
> >  <xsl:variable name="output">
> >   <xsl:for-each select="//section-02">
> >    <xsl:sort 
> > select="exsl:node-set($sort-titles)/*[@doc-number = 
> > current()/doc-number]"/>
> 
> If you're lucky, the optimizer will extract
> 
>    exsl:node-set($sort-titles)/*
> 
> as a subexpression that can be evaluated outside the loop. 
> 
> In case you're not so lucky, it would be better to put it in a variable:
> 
> <xsl:variable name="ref" select="exsl:node-set($sort-titles)/*"/>
> <xsl:variable name="output">
>    <xsl:for-each select="//section-02">
>     <xsl:sort 
>  select="$ref[@doc-number = current()/doc-number]"/>
> 
> Or even better, use a key.
>

OK! but when I try

 <xsl:key name="ref-titles" match="exsl:node-set($sort-titles)/*" use="@doc-number"/>

Saxon throws an error:

"Error in expression exsl:node-set($sort-titles)/*: The only functions allowed in a pattern are id() and key()". 

I must be doing something wrong there?

Anton

The $ref variable works fine:

 <xsl:variable name="output">
  <xsl:variable name="ref" select="exsl:node-set($sort-titles)/*"/>
  <xsl:for-each select="//section-02">
   <xsl:sort select="$ref[@doc-number = current()/doc-number]"/>
   <xsl:sort select="number(concat(substring(arrival-date, 7,4),
    substring(arrival-date, 1,2), substring(arrival-date, 4,2)))"
    order="descending"/>
   <title doc-number="{doc-number}" title="{key('titles', doc-number)}" 
    description="{description}" arrival-date="{arrival-date}"/>
  </xsl:for-each>
 </xsl:variable>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.