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

Re: preceding-sibling after sort gives unexpected resu

Subject: Re: preceding-sibling after sort gives unexpected result
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Thu, 11 Sep 2003 20:16:46 +0200
xsl sort preceding
"Kaine Varley" <kaine.varley@xxxxxxxxxxxx> wrote in message
news:D95333E1DFE4D511B30500065B39139B49B472@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Hi,
>
> I am trying to process a document similar to the one below, using the
> stylesheet below. My problem is that after I have performed the sort, I
> appear to get the preceding sibling in the original document order rather
> than in the newly sorted order.

This problem can be corrected if you improve your understanding of XSLT and
node-sets, document order and how xsl:sort works in particular.

>
> Looking at the results, you can see that for result number 4, I was hoping
> to get (a) as my preceding sibling, and not (c), which was the original
> document order.
>
> This is an unexpected result, and not at all what I was hoping for. Is
this
> supposed to happen

Yes.

>, or is this just a quirk of MSXML?

No.

>
>
> Kaine
>
>
> Source XML:
> -----------
> <root>
> <parent>
> <child name="a">40</child>
> <child name="b">60</child>
> <child name="c">50</child>
> <child name="d">30</child>
> <child name="e">20</child>
> </parent>
> </root>
>
>
> Stylesheet:
> -----------
> <xsl:template match="root">
> <results>
> <xsl:apply-templates select="parent"/>
> </results>
> </xsl:template>
>
>
> <xsl:template match="parent">
> <xsl:apply-templates select="child">
> <xsl:sort select="." data-type="number" order="descending"/>
> </xsl:apply-templates>
> </xsl:template>
>
>
> <xsl:template match="child">
> <result number="{position()}">
> <current-child-name>
> <xsl:value-of select="@name"/>
> </current-child-name>
> <current-child-value>
> <xsl:value-of select="."/>
> </current-child-value>
> <preceding-sibling-name>
> <xsl:value-of
> select="preceding-sibling::child[1]/@name"/>
> </preceding-sibling-name>
> </result>
> </xsl:template>
>
>
> Result:
> -------
> <results>
> <result number="1">
> <current-child-name>b</current-child-name>
> <current-child-value>60</current-child-value>
> <preceding-sibling-name>a</preceding-sibling-name>
> </result>
> <result number="2">
> <current-child-name>c</current-child-name>
> <current-child-value>50</current-child-value>
> <preceding-sibling-name>b</preceding-sibling-name>
> </result>
> <result number="3">
> <current-child-name>a</current-child-name>
> <current-child-value>40</current-child-value>
> <preceding-sibling-name/>
> </result>
> <result number="4">
> <current-child-name>d</current-child-name>
> <current-child-value>30</current-child-value>
> <preceding-sibling-name>c</preceding-sibling-name>
> </result>
> <result number="5">
> <current-child-name>e</current-child-name>
> <current-child-value>20</current-child-value>
> <preceding-sibling-name>d</preceding-sibling-name>
> </result>
> </results>
>
>
> Post sort:
> ----------
> <root>
> <parent>
> <child name="b">60</child>
> <child name="c">50</child>
> <child name="a">40</child>
> <child name="d">30</child>
> <child name="e">20</child>
> </parent>
> </root>
>
>
> My system:
> ----------
> XP Professional
> IE6 SP2
> MSXML4 SP2
>
>
> SNIP
>
>
>
> PROACTIS Group Limited
> Holtby Manor, Stamford Bridge Road, York, YO19 5LL
> Tel +44 (0)1904 481999 Fax +44 (0)1904 481666
> Visit us at www.proactis.com <http://www.proactis.com/>
>
> PROACTIS (r) - Control spend.  Streamline purchasing.
>
> ************************************************************
> The information contained in this email is intended only for the
individual
> to whom it is addresses.  It may contain privileged and confidential
> information.  If you have received this message in error or there are any
> problems, please notify the sender immediately and delete the message from
> your computer.  The unauthorised use, disclosure, copying or alteration of
> this message is forbidden.  PROACTIS Group Limited will not be liable for
> direct, special, indirect or consequential damage as a result of any virus
> being passed on, or arising from alteration of the content of this message
> by a third party.
> ************************************************************
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>




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


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.