Subject: Re: [xsl] Iterating recursivly on a node changing the element names From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Wed, 21 Nov 2007 10:18:27 +0000 |
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/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Iterating recursivly on a nod, ML mail | Thread | Re: [xsl] Iterating recursivly on a, ML mail |
[xsl] Iterating recursivly on a nod, ML mail | Date | [xsl] xsl:for-each-group Problem, Byomokesh Sahoo |
Month |