XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Michal HuniewiczSubject: The document() function inside a loop
Author: Michal Huniewicz
Date: 18 May 2009 10:56 AM
Originally Posted: 18 May 2009 10:25 AM
Dear All,

I have a foreach loop that I want to sort.

<xsl:for-each select="//Documents/Relationships/Relationship[not(Rubriek=preceding-sibling::Relationship/Rubriek)]/Rubriek">

And this works OK (the weird not thing is a select distinct workaround for XSLT 1.0).

But now I wanna sort it and I want to do it like that:

<xsl:sort select="document($rubriekConfigFileLocation)/RubriekConfig/RubriekOrder/Rubriek[@name=.]/@sortKey" data-type="number" order="ascending" />

and it doesn't work. If, instead of the dot, I provide a rubriek name inside apostrophes (hardcoded) - it works.
The dot is supposed to represent the current node and if I simply display it:
<xsl:value-of select="." />
it works. But inside the select construction of the sort element - it doesn't...

Moreover, if I try to display it like that:

<xsl:value-of select="document($rubriekConfigFileLocation)/RubriekConfig/RubriekOrder/Rubriek[@name=.]/@sortKey" />

it DOES NOT work.

Any ideas? Thanks.

Postnext
Michal HuniewiczSubject: The document() function inside a loop
Author: Michal Huniewicz
Date: 18 May 2009 10:57 AM
OK so the problem is that here:

<xsl:value-of select="document($rubriekConfigFileLocation)/RubriekConfig/RubriekOrder/Rubriek[@name=.]/@sortKey" />

the dot means... the current node which is Rubriek, and not the current loop node. I would use

<xsl:variable name="rubriekName" select="." />

but I cannot use it before Sort...

Posttop
Michal HuniewiczSubject: The document() function inside a loop
Author: Michal Huniewicz
Date: 18 May 2009 11:24 AM
FIXED!

Okay just for the record, in case someone has the same problem.

There is a function ready to use in a situation like that called current().

<xsl:sort
select="document($rubriekConfigFileLocation)/RubriekConfig/RubriekOrder/Rubriek[@name=current()]/@sortKey" data-type="number" order="ascending" />

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.