Subject: RE: [xsl] How to copy the previous operations? From: Ram <sram_30@xxxxxxxxx> Date: Thu, 20 Nov 2003 00:49:46 -0800 (PST) |
Charles, Actually, the input xml file is a dynamic one and the number of 'group' is arbitrary. "If a group identifier is followed by an identifier which was already defined before, then the signature part of that group identifier should be added to this signature part". I understand that I should use some recursive structure to fix this. But, I don't know how. What I tried was: <xsl:template match="group"> <xsl:variable name="groupID" select="identifier"/> group<xsl:text> </xsl:text><xsl:value-of select="$groupID"/>Interface { <xsl:call-template name="generation"/> <xsl:apply-templates select="generation"/> <xsl:apply-templates select="group"/> } </xsl:template> <xsl:template name="generation" match="signature"> <!--How the signature part output should look like goes here--> <!--Copying the previous group identifier signature part--> <xsl:if test="identifier[2]= preceding::group/identifier"> <xsl:copy> <xsl:apply-templates select="preceding::group/signature"/> </xsl:copy> </xsl:if> </xsl:template> But, couldn't get the desired output. BR, Ram --- cknell@xxxxxxxxxx wrote: > You've got a misconception about the process of creating a new tree of > nodes that is tipped by this statement " (which should have already > copied the first group identifier a's signature part)". > > A stylesheet refers only to the input tree and itself. I does not have > read access to the output tree. Therefor the notion that your stylesheet > can refer to a tree fragment that has been "already copied" is fatally > flawed. > > I think this problem can be resolved by recursive calls to a named > template, but there isn't enough information to decide exactly how it > should be structured. Is there a set number of <group> elements in a > document, or is this arbitrary? > -- > Charles Knell > cknell@xxxxxxxxxx - email > > > > -----Original Message----- > From: Ram <sram_30@xxxxxxxxx> > Sent: Wed, 19 Nov 2003 08:21:57 -0800 (PST) > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] How to copy the previous operations? > > Hi, > Can anyone help me out how to copy the previous operations? > The xml source would look like this: > > <formatted-xml> > <group><identifier>a</identifier> > <signature>signature <identifier>DNSQuery1</identifier> > <in>in<long>long</long><identifier>ant</identifier></in> > </signature> > </group> > <group><identifier>b</identifier><identifier>a</identifier> > <signature>signature<identifier>DNSQuery2</identifier> > > > > <inout>inout<string>string</string><identifier>grass</identifier></inout> > </signature> > </group> > <group><identifier>c</identifier><identifier>b</identifier> > <signature>signature<identifier>DNSQuery3</identifier> > > > <out>out<boolean>boolean</boolean> > <identifier>fish</identifier></out> > </signature> > </group> > </formatted-xml> > > What I have to do is, I should copy the signature part the first > group > identifier 'a' to the signature part in group identifier 'b', because it > is followed by the group identifier 'a'. > Similarly, the third group identifier 'c' is followed by the second > group identifier 'b' (which should have already copied the > first group identifier a's signature part) and so the second group > identifier's signature part should be copied to the third group > identifier > signature part. > > I tried the following xsl. > > <xsl:template match="group"> > <xsl:if test="identifier[2]= preceding::group/identifier"> > <xsl:copy> > <xsl:apply-templates select="preceding::group/signature"/> > </xsl:copy> > </xsl:if> > </xsl:template> > > But it didn't work. > > Thanks and regards, > Ram > > > __________________________________ > Do you Yahoo!? > Protect your identity with Yahoo! Mail AddressGuard > http://antispam.yahoo.com/whatsnewfree > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > __________________________________ Do you Yahoo!? Free Pop-Up Blocker - Get it now http://companion.yahoo.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] How to copy the previous , cknell | Thread | [xsl] Combining xsls with some extr, Dipesh Khakhkhar |
[xsl] Table alternate rows colors w, Michael Tihon | Date | RE: [xsl] Combining xsls with some , Andrew Welch |
Month |