[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Separate same level elements on a criteria
Subject: [xsl] Separate same level elements on a criteria
From: "Spencer Tickner" <spencertickner@xxxxxxxxx>
Date: Fri, 19 Jan 2007 12:30:57 -0800
|
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
|