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

Re: build group of elements

Subject: Re: build group of elements
From: henry human <henry_human@xxxxxxxx>
Date: Mon, 25 Jun 2012 14:23:44 +0100 (BST)
Re:  build group of elements
Ken, thanks a lot your script is running and provide the result I expected for
that data.
But now I have a more complicated case. The following script bellow
we 
created has a mistake but can't find what is wrong!!!





--- G. Ken
Holman <gkholman@xxxxxxxxxxxxxxxxxxxx> schrieb am So, 24.6.2012:

> Von: G.
Ken Holman <gkholman@xxxxxxxxxxxxxxxxxxxx>
> Betreff: Re:  build group of
elements
> An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx,
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Datum: Sonntag, 24. Juni, 2012 20:09 Uhr
>
At 2012-06-24 17:54 +0100, henry
> human wrote:
> >Ken, unfortunatelly the
elments in the output has
> different prefixes such as:
> >
> ><_1st_
>
><_2nd_
> ><_3rd_
> >The names must contain the above prefixes
> >Your script
builds only :
> ><_1_elment
> ><_1_elment
> ><_2_elment
> ><_3_elment
> 
> Why
do you say this?  Did you not look at the results I
> added to my 
> post?  I
gave you my evidence that the correct result
> is obtained 
> with my
stylesheet ... look below again and you will see
> that what 
> you want is
produced using a conforming XSLT 2 processor (in
> my case 
> I always use
Saxon).
> 
> Maybe you get incorrect results on your machine, but it
> works
as you 
> wish on mine.  If you aren't getting what I'm getting,
> then I
suggest 
> your processor is not supporting the XSLT 2 ordinal=
> attribute
for 
> <xsl:number/>.
> 
> . . . . . . . . Ken
> 
> >--- G. Ken Holman
<gkholman@xxxxxxxxxxxxxxxxxxxx>
> schrieb am So, 24.6.2012:
> >
> > > Von: G.
Ken Holman <gkholman@xxxxxxxxxxxxxxxxxxxx>
> > > Betreff: Re:  build
group of elements
> > > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx,
>
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Datum: Sonntag, 24. Juni, 2012 17:11 Uhr
> > > At 2012-06-24 15:41 +0100, henry
> > > human wrote:
> > > > sorry for my
mistake..again the input xml
> data and the
> > > expecting output:
> > > >
The xml data has many foo elements (1000).
> > >
> > > Just by conjecture, I'm
guessing you want
> <fooGroup>
> > > to be three groups of three.  You don't
>
explain the
> > > criteria, but that is the only "meaningful"
> interpretation
I
> > > can see.  Next time it would help if you
> could explain
> > > your
requirements when including an example rather
> than make
> > > us guess by
looking at your example.
> > >
> > > If I've guessed correctly, this is done
easiest
> with
> > > adjacent grouping.
> > >
> > > I hope this helps.
> > >
>
> > . . . . . . . . . Ken
> > >
> > > ~/t/ftemp $ cat henry.xml
> > > <?xml
version="1.0" encoding="UTF-8"?>
> > >  <xmldata>
> > >  <ss> s </ss>
> > > 
<nn>n </nn>
> > >   <foo>tt</foo>
> > >    <foo>bb</foo>
> > >   
<foo>aa</foo>
> > >     <foo>mm</foo>
> > >       
> <foo>ll</foo>
> > >     
 
> <foo>nn</foo>
> > >     
>    <foo>ff</foo>
> > >
> > >    <foo>gg</foo>
>
> >   
>    <foo>ii</foo>
> > >   <hh>h</hh>
> > >  </xmldata>
> > > ~/t/ftemp
$ xslt2 henry.xml henry.xsl
> > > <?xml version="1.0" encoding="UTF-8"?>
> > >
<fooGroup>
> > >    <_1st_element>
> > >
> > > <_1st_element>tt</_1st_element>
> > >
> > > <_2nd_element>bb</_2nd_element>
> > >
> > >
<_3rd_element>aa</_3rd_element>
> > >    </_1st_element>
> > >   
<_2nd_element>
> > >
> > > <_1st_element>mm</_1st_element>
> > >
> > >
<_2nd_element>ll</_2nd_element>
> > >
> > > <_3rd_element>nn</_3rd_element>
>
> >    </_2nd_element>
> > >    <_3rd_element>
> > >
> > >
<_1st_element>ff</_1st_element>
> > >
> > > <_2nd_element>gg</_2nd_element>
>
> >
> > > <_3rd_element>ii</_3rd_element>
> > >    </_3rd_element>
> > >
</fooGroup>~/t/ftemp $
> > > ~/t/ftemp $ cat henry.xsl
> > > <?xml
version="1.0"?>
> > > <xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > >   xmlns:h="urn:X-henry"
> exclude-result-prefixes="h"
> > >   version="2.0">
> > >
> > > <xsl:output
indent="yes"/>
> > >
> > > <xsl:template match="xmldata">
> >
>   <xsl:for-each-group
> select="foo"
> > >
> > >   
>
   group-adjacent="(position()-1) idiv
> > > 9">
> > >     <fooGroup>
> > >   
>    <xsl:for-each-group
> > > select="current-group()"
> > >
> > >
> > >
group-adjacent="(position()-1) idiv 3">
> > >     
>    <xsl:element
> > >
name="_{h:ord(position())}_element">
> > >       
>    <xsl:for-each
> > >
select="current-group()">
> > >         
>    <xsl:element
> > >
name="_{h:ord(position())}_element">
> > >
> > > <xsl:copy-of
select="node()"/>
> > >
> > > </xsl:element>
> > >       
>    </xsl:for-each>
> > >     
>    </xsl:element>
> > >   
>    </xsl:for-each-group>
> > > 
   </fooGroup>
> > >   </xsl:for-each-group>
> > > </xsl:template>
> > >
> > >
<xsl:function name="h:ord">
> > >   <xsl:param name="pos"/>
> >
>   <xsl:number value="$pos"
> ordinal="1"/>
> > > </xsl:function>
> > >
> > >
</xsl:stylesheet>
> > > ~/t/ftemp $
> 
> 
> --
> Public XSLT, XSL-FO, UBL and
code list classes in Europe --
> Oct 2012
> Contact us for world-wide XML
consulting and instructor-led
> training
> Free 5-hour lecture:
http://www.CraneSoftwrights.com/links/udemy.htm
> Crane Softwrights Ltd.     
   
>   http://www.CraneSoftwrights.com/s/
> G. Ken Holman           
>    
   mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
> Google+ profile:
https://plus.google.com/116832879756988317389/about
> Legal business
disclaimers:    http://www.CraneSoftwrights.com/legal
> 
> 
>
--~------------------------------------------------------------------
>
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> To
unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
> or e-mail:
<mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>
> --~--

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.