[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?

Subject: RE: Is it possible to modify the source-tree?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 13 Sep 2005 08:40:38 +0100
RE:  Is it possible to modify the source-tree?
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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.