xsl-list
[Top] [All Lists]

Re: New XSL user seeking assistance!

2005-07-05 06:07:41
Hi,

Tempore 14:10:32, die 07/05/2005 AD, hinc in xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit Matt Sims <matt(_dot_)sims(_at_)aston(_dot_)tv>:

There is no limit to how deep the nesting can be, but only certain types
need to be merged (eg. in this case, only 'indent' elements).  Elements
such as 'font' and 'colour' simply override any previous elements of the
same type so are not a problem.  Obviously, nodes of the same type need
only be merged when they are immediate descendants of each other, as
opposed to having text between.

For a starter, you might look into this stylesheet (should provide correct output for your samples) :

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="node() | @*">
        <xsl:copy>
                <xsl:apply-templates select="node() | @*"/>
        </xsl:copy>
</xsl:template>

<xsl:template match="indent[node()[1][self::indent]]">
        <indent x="{(_at_)x + indent/@x}" y="{(_at_)y + indent/@y}">
                <xsl:apply-templates select="*/node()"/>
        </indent>
</xsl:template>

<xsl:template match="font[node()[1][self::font]] | colour[node()[1][self::colour]]">
        <xsl:apply-templates select="*"/>
</xsl:template>

</xsl:stylesheet>


regards,
--
Joris Gillis (http://users.telenet.be/root-jg/me.html)
Spread the wiki (http://www.wikipedia.org)

--~------------------------------------------------------------------
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>
--~--