[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Concatenating the attribute values of ancestors
Subject: Re: [xsl] Concatenating the attribute values of ancestors From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Fri, 8 Jul 2005 01:54:00 -0700 (PDT) |
I am actually getting error Exception in thread "main" java.lang.OutOfMemoryError with my stylesheet. It seems recursing is not stopping. I am using JRE 1.4.2_03. I am using Saxon 8.4. Could this be a bug? Regards, Mukul --- Mukul Gandhi <mukul_gandhi@xxxxxxxxx> wrote: > Probably some sort of following logic is required.. > Please be beware, this is not tested. > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > version="1.0"> > > <xsl:output method="xml" indent="yes" /> > > <xsl:template match="node() | @*" priority="5"> > <xsl:copy> > <xsl:apply-templates select="node() | @*" /> > </xsl:copy> > </xsl:template> > > <xsl:template match="*" priority="6"> > <xsl:copy> > <xsl:apply-templates select="@*" /> > <xsl:attribute name="newSeq"> > <xsl:call-template > name="concatenate-ancestor-attributes"> > <xsl:with-param name="attr_value" > select="''" /> > <xsl:with-param name="anestors" > select="ancestor::*" /> > </xsl:call-template> > </xsl:attribute> > <xsl:apply-templates/> > </xsl:copy> > </xsl:template> > > <xsl:template > name="concatenate-ancestor-attributes"> > <xsl:param name="attr_value" /> > <xsl:param name="ancestors" /> > > <xsl:choose> > <xsl:when test="parent::*"> > <xsl:call-template > name="concatenate-ancestor-attributes"> > <xsl:with-param name="attr_value" > select="concat($attr_value, parent::*/@seq)" /> > <xsl:with-param name="anestors" > select="ancestor::*" /> > </xsl:call-template> > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="$attr_value" /> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > > </xsl:stylesheet> > > Regards, > Mukul > > > --- Lakshmi narayana <lchintala@xxxxxxxxxxxx> wrote: > > > > > Hi > > I want a template which adds the attribute values > of > > its ancestors and > > create an attribute to the current > > node. The value to this attribute is the result of > > conactination of all the > > node values added of its parents. > > For example, > > <A seq="1"> > > <B seq="2" /> > > <C seq="3"> > > <D seq="4" /> > > </C> > > </A> > > In the above xml, I want to concatenate all the > seq > > values of all ancestors > > and its seq value also. And add new attribute > > to the current node as newSeq with the result > > concatenated value. > > Note : if seq attribute is not there concatenate > > value "0". > > Output should look like this. > > <A seq="1" newSeq="1"> > > <B seq="2" newSeq="12"/> > > <C seq="3" newSeq="13"> > > <D seq="4" newSeq="134"/> > > </C> > > <E newSeq="10"> > > <F seq="5" newSeq="105"/> > > </E> > > </A> > > > > Thanks > > Laxmi Narayana > > > > > > > > > ____________________________________________________ > Sell on Yahoo! Auctions no fees. Bid on great > items. > http://auctions.yahoo.com/ > > ____________________________________________________ Sell on Yahoo! Auctions no fees. Bid on great items. http://auctions.yahoo.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Concatenating the attribu, Mukul Gandhi | Thread | Re: [xsl] Concatenating the attribu, David Carlisle |
Re: [xsl] Concatenating the attribu, Mukul Gandhi | Date | Re: [xsl] multiple paths in the "us, David Carlisle |
Month |
Keywords