[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Is it possible to modify the source-tree?
Hi Michael, Could you please explain how to have the results of all the templates you provided go into a variable? And be passed to a template like the one below ... <xsl:template match="reg"> <br/>Register = <xsl:value-of select="."/> Parent Offset = <xsl:value-of select="../@offset"/> Sibling count = <xsl:value-of select="count(preceding-sibling::reg)"/> </xsl:template> Appreciating your help. Anupam. --- Michael Kay <mike@xxxxxxxxxxxx> wrote: > Start with an identity template: > > <xsl:template match="*"> > <xsl:copy> > <xsl:copy-of select="@*"/> > <xsl:apply-templates/> > </xsl:copy> > </xsl:template> > > Add a template to handle the href: > > <xsl:template match="reg[@href]"> > <xsl:copy-of select="//regdef[@name=current()/@href]"/> > </xsl:template> > > And another template to avoid copying the regdef: > > <xsl:template match="regdef"/> > > This creates the document that you say you want to form the *input* to the > transformation. So you want a pipeline of two transformations: first the one > above, then the other one you had in mind. You can either write the two > transformations as part of the same stylesheet (using modes, with a variable > used to hold the result of the first transformation) or you can put them in > separate stylesheets and organise the pipeline at the application level. > > Michael Kay > http://www.saxonica.com/ > > > -----Original Message----- > > From: Agnisys Technology (P) Ltd. [mailto:agnisys@xxxxxxxxx] > > Sent: 13 September 2005 00:03 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: RE: Is it possible to modify the source-tree? > > > > My input looks like this: > > <a> > > <b offset="5"> > > <reg>reg_1</reg> > > <reg href="REGDEF1"/> > > </b> > > > > <regdef name="REGDEF1"> > > <reg>reg_10</reg> > > <reg>reg_20</reg> > > </regdef> > > > > </a> > > > > I want the <reg href="REGDEF1"/> be replaced with the > > definition defined above, namely : > > <reg>reg_10</reg> > > <reg>reg_20</reg> > > > > So to the XSLT parser, the input looks like: > > <a> > > <b offset="5"> > > <reg>reg_1</reg> > > <reg>reg_10</reg> > > <reg>reg_20</reg> > > </b> > > </a> > > > > The output is based on the attributes of the <b> node and the > > siblings. If I use > > <xsl:apply_templates> I will have to pass a whole bunch of > > info to the template. > > > > Thanks, > > Anupam. > > > > > > --- Michael Kay <mike@xxxxxxxxxxxx> wrote: > > > > > The simple answer is: no. > > > > > > You'll have to explain the requirement more carefully, I > > can't really > > > understand from this what you're trying to do. > > > > > > Michael Kay > > > http://www.saxonica.com/ > > > > > > > > > > > > > > __________________________________ > > Yahoo! Mail - PC Magazine Editors' Choice 2005 > > http://mail.yahoo.com > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
|
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
|