Re: [xsl] xsl-for-each-group in xslt 2.0

Subject: Re: [xsl] xsl-for-each-group in xslt 2.0
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Mon, 28 Sep 2009 17:03:00 +0200
a kusa wrote:

My XML is as follows:

<list1>
<listitem>A</listitem>
<listitem>B</listitem>
<list2>
<listitem>C</listitem>
<listitem>D</listitem>
</list2>
</list1>

Every <listX><listitem> combination corresponds to one step.

So I want this to transform into:

<step1>A B</step1>
<step2>C D</step2>

I am not sure you need xsl:for-each-group, for the above input (wrapped in a root element) the following stylesheet creates above output (wrapped in a root element):


<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  version="2.0">

<xsl:output indent="yes"/>

  <xsl:template match="root">
    <xsl:copy>
      <xsl:apply-templates/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="*[matches(local-name(), 'list[0-9]+')]">
    <xsl:element name="step{substring-after(local-name(), 'list')}">
      <xsl:value-of select="listitem"/>
    </xsl:element>
    <xsl:apply-templates/>
  </xsl:template>

<xsl:template match="text()"/>

</xsl:stylesheet>



--

	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/

Current Thread