Subject: Re: [xsl] Iterating recursivly on a node changing the element names From: ML mail <mlnospam@xxxxxxxxx> Date: Wed, 21 Nov 2007 05:31:59 -0800 (PST) |
Dear Andrew, Thank you for your help, that is pretty much what I would like to do. Just I have a basic question, how do I map nsprefix ? I understood that this isn't a variable, else it would be $nsprefix I guess. Thanks Regards --- Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote: > On 21/11/2007, ML mail <mlnospam@xxxxxxxxx> wrote: > > Dear list, > > > > I would like to modify the name of my elements of > a > > certain node to > > make it use a new namespace so for that I somehow > > need an iteration > > process which goes through a specific node and > adds a > > prefix to all of my > > elements. Let's say I have the following: > > > > <start attr="myattr"> > > <two> > > <three>3</three> > > <four>4</four> > > </two> > > </start> > > > > I need to make it look like this after processing: > > > > <nsprefix:start attr="myattr"> > > <nsprefix:two> > > <nsprefix:three>3</nsprefix:three> > > <nsprefix:four>4</nsprefix:four> > > </nsprefix:two> > > </nsprefix:start> > > > > > > I started creating a template for that and > defining > > all the nodes under > > the start node but this sounds quite stupid > because > > if there are many > > different possibilites it makes a whole lot of > checks > > to build. So I > > was thinking it's much easier to just detect the > > start element and then > > iterate through all of it's child elements (in my > > case: two, three four) > > and add the prefix to these elements. > Unfortunately I > > didn't manage to > > do that. Can someone provide me help on how to > > acheive that ? > > Use the standard identity template with a specific > template to put > <start> and all of it's descendants into the > namespace: > > <xsl:template match="@*|node()"> > <xsl:copy> > <xsl:apply-templates > select="@*|node()"/> > </xsl:copy> > </xsl:template> > > <xsl:template > match="*[ancestor-or-self::start]"> > <xsl:element name="nsprefix:{local-name()}"> > <xsl:copy-of select="@*"/> > <xsl:apply-templates/> > </xsl:element> > </xsl:template> > > ...make sure "nsprefix" is mapped somewhere. > > > cheers > -- > Andrew Welch > http://andrewjwelch.com > Kernow: http://kernowforsaxon.sf.net/ > > ____________________________________________________________________________________ Get easy, one-click access to your favorites. Make Yahoo! your homepage. http://www.yahoo.com/r/hs
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Iterating recursivly on a, Andrew Welch | Thread | Re: [xsl] Iterating recursivly on a, Andrew Welch |
Re: [xsl] xsl:for-each-group Proble, Andrew Welch | Date | Re: [xsl] Iterating recursivly on a, Andrew Welch |
Month |