xsl-list
[Top] [All Lists]

Re: Processing data after an empty tag.

2005-03-01 10:07:58
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>