Subject: Re: [xsl] Copy element with attributes From: andrew welch <andrew.j.welch@xxxxxxxxx> Date: Tue, 29 Nov 2005 13:56:17 +0000 |
> I have an xhtml file that I want to transform using > xslt, like the one below. I want to prepend and append > some text and change some body tag attributes but > copy any other attributes. I cannot seem to get that > done in the same transformation. > > An example: > > <html> > <head> > </head> > <body text="#003366" bgcolor="#663300" onload="otherAttribs()"> > <p>My page</p> > </body> > </html> > > The result should be: > > <html> > <head> > </head> > <body text="#000000" bgcolor="#ffffff" onload="otherAttribs()"> > Prepend text > <p>My page</p> > Append text > </body> > </html> You want to use the identity transform with a special templates for the <body> attributes and <p>: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="body/@text"> <xsl:attribute name="text">#000000</xsl:attribute> </xsl:template> <xsl:template match="body/@bgcolor"> <xsl:attribute name="text">#ffffff</xsl:attribute> </xsl:template> <xsl:template match="p"> <xsl:text>Prepend Text</xsl:text> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> <xsl:text>Append Text</xsl:text> </xsl:template> </xsl:stylesheet> cheers andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Copy element with attribu, Diogo Vascocelos | Thread | [xsl] namespaces and xmlns="", tom tom |
Re: [xsl] Copy element with attribu, Ragulf Pickaxe | Date | [xsl] Problem with obtaining distin, Ian E. Powell |
Month |