Re: [xsl] Pairing elements according to attributes with XSLT 1

Subject: Re: [xsl] Pairing elements according to attributes with XSLT 1
From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Tue, 28 Jul 2009 11:40:06 +0200
> I'm still stuck with this sorting...
>
> Can anyone help me out?

Just insert <xsl:sort> at the right place, here is where you have to:

$ diff -c2 doit.xsl doit.sort.xsl
*** doit.xsl    Tue Jul 28 09:38:50 2009
--- doit.sort.xsl       Tue Jul 28 09:41:16 2009
***************
*** 16,19 ****
--- 16,20 ----
                     fromSize="{$from}" toSize="{$to}">
        <xsl:for-each select="/KeywordsInfo/KeywordsEntry">
+         <xsl:sort/>
          <xsl:variable name="kentry" select="." />
          <xsl:for-each select="keyword[@size=$from]">

$

You may want to consult the spec (default is " select='.' ") which is
exactly what you want:
http://www.w3.org/TR/xslt#sorting


Btw,:
I realized that some IBM email gateway seems to modify my submitted
stylesheets up to being non-XML. I already got confirmation from
xsl-list owner that for the last post I saw this the email reached the
list modified. "doit.xsl" is the stylesheet I submitted last time,
and "doit.save.xsl" is what I just saved via copy and paste from the
old post, here is the strange diff:

$ diff doit.xsl doit.save.xsl
2c2
< xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
---
> xmlns:xsl=".http://www.w3.org/1999/XSL/Transform";;>
3a4
>
14c15
<     <MainWordInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
---
>     <MainWordInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";;
20c21
<           <xsl:variable name="fromkw" select="." />
---
>           <xsl:variable name="fromkw" select="." />>

$

Mit besten Gr|_en / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschdftsf|hrung: Erich Baier
Sitz der Gesellschaft: Bvblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



             Andy Kohn
             <andydev@xxxxxxxx
             m>                                                         To
                                       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
             07/28/2009 08:36                                           cc
             AM
                                                                   Subject
                                       Re: [xsl] Pairing elements
             Please respond to         according to attributes with XSLT 1
             xsl-list@xxxxxxxx
              lberrytech.com








I'm still stuck with this sorting...

Can anyone help me out?

Thanks,

Andy

On Fri, Jul 24, 2009 at 12:29 PM, Andy Kohn<andydev@xxxxxxxxx> wrote:
> That works great! thanks a lot for the help.
>
> Now I'm trying to sort it using the data of the node that has attribute
'from'
>
> For example, with this input, the first one would be AAAA then CCC then
ZZZZ
>
> I tried using <xsl:sort select="keyword[@size=$from]"> but it doesn't
> seem to order it.
>
> <KeywordsInfo>
>   <KeywordsEntry>
>       <keyword size="big">AAAA</keyword>
>       <keyword size="small">table tennis ball</keyword>
>   </KeywordsEntry>
>   <KeywordsEntry>
>       <keyword size="big">ZZZZ</keyword>
>       <keyword size="small">chair 1</keyword>
>   </KeywordsEntry>
>   <KeywordsEntry>
>       <keyword size="big">CCC</keyword>
>       <keyword size="small">chair 2</keyword>
>   </KeywordsEntry>
> </KeywordsInfo>
>
>
> The result I need:
>
> <MainWordInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>           xsi:noNamespaceSchemaLocation="entriesResult.xsd"
>           fromSize ="big"
>           toSize="small">
>  <Entries>
>     <first>AAAA</first>
>     <second>table tennis ball</second>
>  </Entries>
>  <Entries>
>     <first>CCC</first>
>     <second>chair 2</second>
>  </Entries>
>  <Entries>
>     <first>ZZZZ</first>
>     <second>chair 1</second>
>  </Entries>
> </MainWordInput>
>
>
> Thanks all!

Current Thread