Subject: RE: [xsl] Copy-of & New Namespace prefix From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 1 Feb 2006 15:53:36 -0000 |
xsl:copy-of will only create an exact copy. To create a modified copy, you need to recursively walk the document modifying each element as necessary. Something like this: <xsl:template match="*"> <xsl:element name="{local-name()}" namespace="(new namespace)"> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:element> </xsl:template> Note also that you should be thinking in first of the expanded-name of the elements (that is, their namespace URI and local-name) - the prefixes and namespace declarations will follow. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Woods, Christopher [mailto:cwoods@xxxxxxxxxxxxxxxxx] > Sent: 01 February 2006 15:41 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Copy-of & New Namespace prefix > > Hello, > > I want to create a transform that takes an (X)HTML as an > input and gives > back the unchanged but for the addition of a namespace prefix to each > element. Input file might be as follows: > > <html> > <body> > <p><b>Generalized foo here</b></p> > <ol> > <li>Foo 1</li> > <li>Foo 2</li> > </ol> > <p>Final foo</p> > </body> > </html> > > Output might be as follows: > > <foo:html> > <foo:body> > <foo:p><foo:b>Generalized foo here</foo:b></foo:p> > <foo:ol> > <foo:li>Foo 1</foo:li> > <foo:li>Foo 2</foo:li> > </foo:ol> > <foo:p>Final foo</foo:p> > </foo:body> > </foo:html> > > My instinct say to use <xsl:copy-of> but I'm confused about > how I might > add the prefix. Thanks very much.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Copy-of & New Namespace prefi, Woods, Christopher | Thread | Re: [xsl] Copy-of & New Namespace p, George Cristian Bina |
[xsl] XSL-List Guidelines, B Tommie Usdin | Date | Re: [xsl] Copy-of & New Namespace p, George Cristian Bina |
Month |