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

Re: Separate same level elements on a criteria

Subject: Re: Separate same level elements on a criteria
From: "Spencer Tickner" <spencertickner@xxxxxxxxx>
Date: Fri, 19 Jan 2007 14:54:41 -0800
Re:  Separate same level elements on a criteria
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: 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

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.