xsl-list
[Top] [All Lists]

RE: Grouping of irregular XML

2006-02-21 02:11:20
Simplest answer is to use XSLT 2.0 with

<xsl:for-each-group select="*" group-adjacent="node-name(.)">
  <xsl:choose>
    <xsl:when test="current-group[1] instance of element(aaa)">
      <ol>
        <xsl:copy-of select="current-group()"/>
      </ol>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy-of select="current-group()"/>
    </
  </
</

For XSLT 1.0 solutions, search under "XSLT positional grouping".

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

-----Original Message-----
From: Paul Clarke [mailto:pclarke(_at_)rcpsolutions(_dot_)com] 
Sent: 21 February 2006 07:02
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Grouping of irregular XML

Hi All,

I'm just coming back to XSLT after a long lay off doing other 
things and am
struggling with grouping irregular xml content from a converter.

I have this as an input.

<body>
      <aaa>
              ..
      </aaa>
      <aaa>
              ..
      </aaa>
      <bbb>
              ..
      </bbb>
      <aaa>
              ..
      </aaa>
      <aaa>
              ..
      </aaa>
</body>

And I need to put the groups of <aaa> elements in a deeper structure

<body>
      <ol>
              <aaa>
                      ..
              </aaa>
              <aaa>
                      ..
              </aaa>
      </ol>
      <bbb>
              ..
      </bbb>
      <ol>
              <aaa>
                      ..
              </aaa>
              <aaa>
                      ..
              </aaa>
      </ol>
</body>

Should I be using xsl:key here or another method?

Thanks

Paul Clarke 


--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>