[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Merging descendant elements while summing attribute vales (was: New XSL user seeking assistance!)


Subject: Re: [xsl] Merging descendant elements while summing attribute vales (was: New XSL user seeking assistance!)
From: "Joris Gillis" <roac@xxxxxxxxxx>
Date: Tue, 05 Jul 2005 16:01:37 +0200

Tempore 15:49:12, die 07/05/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Matt Sims <matt.sims@xxxxxxxx>:

Yes, my input does use a namespace
(xmlns="http://www.aston.tv/schemas/Aston/Aston7").  What would I need
to do to allow for this?

You need to include the namespace in the stylesheet.


Together with a little correction in the xpath patterns and the addition of a 'xsl:strip-space' element (not required with my xslt engine), this stylesheet should really work:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aston="http://www.aston.tv/schemas/Aston/Aston7" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>


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

<xsl:template match="aston:indent[aston:indent and count(node())=1]">
<xsl:element name="indent" namespace="{namespace-uri()}">
<xsl:attribute name="x"><xsl:value-of select="@x + aston:indent/@x"/></xsl:attribute>
<xsl:attribute name="y"><xsl:value-of select="@y + aston:indent/@y"/></xsl:attribute>
<xsl:apply-templates select="*/node()"/>
</xsl:element>
</xsl:template>


<xsl:template match="aston:font[aston:font and count(node())=1] | aston:colour[aston:colour and count(node())=1]">
<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)


Current Thread
Keywords