RE: [xsl] HELP! The XSLT may be easy, but I could not figure it out

Subject: RE: [xsl] HELP! The XSLT may be easy, but I could not figure it out
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 7 Feb 2005 15:41:34 -0000
In 2.0, that's

<xsl:for-each-group select="data" 
                    group-starting-with="data[ends-with(., 'A')]">
  <group>
    <xsl:apply-templates select="current-group()"/>
  </group>
</xsl:for-each>

<xsl:template match="data">
  <amount><xsl:value-of select="."/></amount>
</xsl:template>

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: piming.kuo@xxxxxxxxxxxxx [mailto:piming.kuo@xxxxxxxxxxxxx] 
> Sent: 07 February 2005 14:39
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] HELP! The XSLT may be easy, but I could not 
> figure it out
> 
> Can anyone help? Thanks in advance.
> 
> I have the xml document like:
> 
> <response>
>   <all>
>     <data>12345A</data>
>     <data>22345B</data>
>     <data>32345A</data>
>     <data>42345B</data>
>     <data>52345B</data>
>     <data>62345A</data>
>     <data>72345A</data>
>   <all>
> </response>
> 
> And like to transform it to another xml document. For all 
> <data> under the
> <all>, Start a new group
> with the <group> following with <amount> when the last 
> character of context
> of the <data> is A; otherwise add the <amount> with the context when
> the last character of the context of the <data> is "B".
> 
> I had tried with for-each and following, but could not get 
> what I want.
> 
> <response>
>   <group>
>     <amount>12345A</amount>
>     <amount>22345B</amount>
>   </group>
>   <group>
>     <amount>32345A</amount>
>     <amount>42345B</amount>
>     <amount>52345B</amount>
>   </group>
>   <group>
>     <amount>62345A</amount>
>     <amount>72345B</amount>
>   </group>
> </response>
> 
> Have a nice day!
> 
> Piming Kuo

Current Thread