[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Re: preceding-sibling after sort gives unexpected result
Subject: [xsl] Re: preceding-sibling after sort gives unexpected result From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Thu, 11 Sep 2003 20:16:46 +0200 |
"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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] preceding-sibling after s, Michael Kay | Thread | RE: [xsl] preceding-sibling after s, Kaine Varley |
Re: [xsl] referencing to other xml , J.Pietschmann | Date | Re: [xsl] newbie needs help, Brian Benson |
Month |
Keywords