[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Separate same level elements on a criteria


Subject: Re: [xsl] Separate same level elements on a criteria
From: "Spencer Tickner" <spencertickner@xxxxxxxxx>
Date: Fri, 19 Jan 2007 14:54:41 -0800

Hi Guys,

Thanks so much. You are correct and I should have mentioned that I'm
using 2.0. I'm just in the middle of trying out your examples and will
post back when I get them working.

Spencer

On 1/19/07, Michael Kay <mike@xxxxxxxxxxxx> wrote:
You can process all the children other than those in the group starting with
<head>TOC</head> like this:

  <xsl:for-each-group select="*" group-starting-with="head">
    <xsl:apply-templates select="if (.='TOC') then () else
current-group()"/>
  </xsl:for-each-group>

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


> -----Original Message----- > From: Spencer Tickner [mailto:spencertickner@xxxxxxxxx] > Sent: 19 January 2007 20:31 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Separate same level elements on a criteria > > Hi Group, > > I'm wondering if anyone has a slick way of solving this > problem. I have an xml document like: > > <root> > <head_document>Title</head_document> > <para>This is a paragraph</para> > <bold_para>This is a paragraph</bold_para> > <head>TOC</head> > <section>1. Title</section> > <section>2. Title</section> > <head>Heading 1</head> > <paragraph_indent>This is a paragraph</paragraph_indent> > <paragraph_outdent>This is a paragraph</paragraph_outdent> > <head>Heading 2</head> > <paragraph>This is a paragraph</paragraph> > <chart>This is a chart</chart> > </root> > > Basically I'm making a bunch of html documents from this xml > document and a table of contents. Table of contents is easy > (I need to grab the <head_document> element and skip the > <head>TOC</head> element): > > <xsl:template match="root" mode="toc"> > <ul> > <xsl:for-each select="head_document|head[not(contains(., > 'TOC'))]"> <li>Do Something</li> </xsl:for-each> </ul> </xsl:template> > > > Ok, so that all works great, I now have to do something > similar to above but apply-templates to all the elements that > belong with the heads I want. ie: <head_document> down to > <head>, skip <head>TOC</head>, next <head> element down to > the next <head> element, repeat. > > Any ideas on how to do this would be very helpful. I thought > group-by would probably be the answer but so far my research > hasn't turned up anything. > > Thanks, > > Spencer


Current Thread
Keywords
xml