Please try the following XSL..
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0"
encoding="UTF-8" indent="yes"/>
<xsl:template match="/body">
<body>
<xsl:copy-of select="chapter"/>
<xsl:for-each select="p">
<xsl:if test="substring(span, 1, 1) =
substring(preceding-sibling::p[1]/span, 1, 1)">
<subsection>
<title>
<xsl:value-of select="span[1]"/>
</title>
<para>
<xsl:value-of select="span[2]"/>
</para>
</subsection>
</xsl:if>
<xsl:if test="not( substring(span, 1, 1) =
substring(preceding-sibling::p[1]/span, 1, 1) )">
<title>
<xsl:value-of select="span[1]"/>
</title>
<para>
<xsl:value-of select="span[2]"/>
</para>
</xsl:if>
</xsl:for-each>
</body>
</xsl:template>
</xsl:stylesheet>
Hope, I understood the problem correctly
Regards,
Mukul
--- Jason Clark <JaClark(_at_)constellagroup(_dot_)com> wrote:
Hello All,
I am attempting to transform the below XML document
(CHAPTER OF A BOOK) into
my preferred output below. I'm having problems
generating the subsections.
The subsections can be 1 to N nested. Could someone
help with an approach
or point me to some resources that have something
like this. Thanks in
advance.
SOURCE DOCUMENT:
<body>
<chapter></chapter>
<p>
<span>2.1 Introduction</span>
<span>Content</span>
</p>
<p>
<span>2.1.1 My Book</span>
<span>Content</span>
</p>
</body>
OUTPUT I WOULD LIKE:
<body>
<chapter></chapter>
<section>
<title>2.1 Introduction</title>
<para>Content</para>
<subsection>
<title>2.1.1 MyBook</title>
<para>Content</para>
</subsection>
</section>
</body>
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list