[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Transforming a node in XSL multiple times
You need to think about this problem a different way. You could do your transformation in several passes, so that the result of the first pass is the input to the second. You can do this either with multiple stylesheets or by using temporary trees (result tree fragments) and the xx:node-set() extension. Or you can do it in a single pass, in which case each node in the result tree must be computed as a function of the things in the source tree that it depends on. You can visit a source node as often as you like, but you can only visit a result node once. Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Spencer > Sent: 29 October 2002 07:21 > To: xsl list > Subject: Transforming a node in XSL multiple times > > > Hi! > > We have a tag like this <img src="hello.bmp"/> and we want > to perform multiple transformations on it such as adding alt > and width attributes. This can be done in one template quite easily. > > However, the problem arises if we need to change this tag > again but through a different Xpath. For example, we do a > template match on img and add alt and width attributes. > Then we do a template match on the div and because it has a > center alignment, we now want to add the height attribute to > the preceeding image using the xpath preceding::img > > <img src="hello.bmp"/> > <div align="center"/> > > This is a completely arbitary example, there are many > different cases when we need to do similiar transformations > to the same tag but from more than one template and/or a > different XPath that points to the same tag. > > In the template we use xsl:copy to output the tag and its changes. > This prints the tag to the result tree, but we can no longer > change it in a different template. If we do (using another > xsl:copy) the img is printed out again with different attributes. > > How can we change this tag multiple times from multiple > templates but have it only printed out once with all the > changes to it? > > Thank you in advance for your help > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|