RE: [xsl] How to copy the previous operations?

Subject: RE: [xsl] How to copy the previous operations?
From: cknell@xxxxxxxxxx
Date: Wed, 19 Nov 2003 12:50:14 -0500
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


Current Thread