Subject: [xsl] Merging adjacent nodes of same type From: Matt Sims <mattsims@xxxxxxxxxxxxx> Date: Fri, 23 Sep 2005 11:16:06 +0100 |
<text> <offset x="1" y="2" z="3" /> Some text <offset x="4" y="5" z="6" /> <offset x="7" y="8" z="9" /> Some more text </text>
I wish to merge any adjacent empty 'offset' nodes and sum the attribute values, i.e. to give the following result:
<text> <offset x="1" y="2" z="3" /> Some text <offset x="11" y="13" z="15" /> Some more text </text>
The 'offset' nodes may contain child nodes/text, but I only want to merge adjacent offset nodes that do not have any children or text, so the following snippet:
<text> <offset x="1" y="2" z="3" /> Some text <offset x="4" y="5" z="6" /> <offset x="7" y="8" z="9" /> Some more text <offset x="10" y="11" z="12"> Yet some more text </offset> <offset x="13" y="14" z="15"> And finally some more text </offset> </text>
<text> <offset x="1" y="2" z="3" /> Some text <offset x="11" y="13" z="15" /> Some more text <offset x="10" y="11" z="12"> Yet some more text </offset> <offset x="13" y="14" z="15"> And finally some more text </offset> </text>
I have previously performed a similar exercise on nested 'indent' nodes of the same type using the following template:
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aston="http://www.aston.tv/schemas/Aston/Aston7">
<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:attribute name="z"> <xsl:value-of select="@z + aston:indent/@z"/> </xsl:attribute> <xsl:apply-templates select="*/node()"/> </xsl:element> </xsl:template>
But I think I need to use a 'foreach' loop for this problem in association with 'group-adjacent', which I have no experience of.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] RFC 822, Alan Gutierrez | Thread | Re: [xsl] Merging adjacent nodes of, David Carlisle |
[xsl] RFC 822, Alan Gutierrez | Date | Re: [xsl] Merging adjacent nodes of, David Carlisle |
Month |