Tempore 15:41:15, die 03/01/2005 AD, hinc in
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit McKinstry, Scott A
<scott(_dot_)a(_dot_)mckinstry(_at_)lmco(_dot_)com>:
SGML Input Supplied:
<para>
<text> The following is a list <style type="list"></style><style
type="para"></style>List Item One.
<style type="para"></style>List Item Two.<style
type="para"></style>List Item Three</text>
</para>
XML Output Required:
<para>The following is a list.
<itemizedlist>
<listitem><para>List Item One</para></listitem>
<listitem><para>List Item Two</para></listitem>
<listitem><para>List Item Three</para></listitem>
</itemizedlist>
</para>
Hi,
This could be treated as a grouping problem.
Here's a working solution:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" />
<xsl:key name="listText" match="node()[not(self::style)]"
use="generate-id(preceding-sibling::style[(_at_)type='para'][1])"/>
<xsl:key name="listHead" match="style[(_at_)type='para']"
use="generate-id(preceding-sibling::style[(_at_)type='list'][1])"/>
<xsl:template match="para">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="text">
<xsl:apply-templates
select="node()[not(preceding-sibling::style[(_at_)type='list'])] |
style[(_at_)type='list']"/>
</xsl:template>
<xsl:template match="style[(_at_)type='list']">
<itemizedlist>
<xsl:apply-templates select="key('listHead',generate-id())"/>
</itemizedlist>
</xsl:template>
<xsl:template match="style">
<listitem>
<xsl:element name="{(_at_)type}">
<xsl:apply-templates
select="key('listText',generate-id())"/>
</xsl:element>
</listitem>
</xsl:template>
</xsl:stylesheet>
regards,
--
Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
"Et ipsa scientia potestas est" - Francis Bacon , Meditationes sacrae
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--