Re: [xsl] outputting mutiple html files

Subject: Re: [xsl] outputting mutiple html files
From: George Cristian Bina <george@xxxxxxx>
Date: Mon, 26 Apr 2004 12:29:29 +0300
Hi David,

When you match a session you can apply the templates further only on the elements following the current session until the next session element instead of the elements inside the current session element.

Assuming the following input document:

<?xml version="1.0" encoding="UTF-8"?>
<test>
  <section>section one</section>
  <para>para1</para>
  <para>para2</para>
  <section>section two</section>
  <para>para3</para>
</test>

then the following stylesheet

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
<xsl:template match="/">
<xsl:apply-templates select="test/section"></xsl:apply-templates>
</xsl:template>
<xsl:template match="section">
<!-- create section file file -->
section
<xsl:variable name="sid" select="generate-id(.)"/>
<xsl:apply-templates select="following-sibling::*[name()!='section' and generate-id(preceding-sibling::section[1])=$sid]"/>
</xsl:template>


    <xsl:template match="para">
      <xsl:value-of select="."/>
    </xsl:template>

</xsl:stylesheet>


will get as output:


      section
      para1para2

      section
      para3


Hope that helps, George ----------------------------------------------- George Cristian Bina <oXygen/> XML Editor - http://www.oxygenxml.com



David Elsmore wrote:
I want to transform an xml file, outputting separate sections into multiple html documents. If the xml was srtructured as follows I would have no problem, I could simply use <xsl:for-each select="section">

<section>
<title>section one</title>
<para/>
<para/>
</section>

However, the structure of the xml file (over which I have no control) is more like:

<section>section one</section>
<para/>
</para>
<section>section two</section>
<para/>...

The section tags, rather than wrap separate areas of content merely indicate where a new section begins

Is there an easy way to do this?


Thanks for your help


David

Current Thread