Subject: RE: [xsl] how to rename attributes and restrict selection? From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 31 May 2005 23:03:42 +0100 |
> Apart from using xslt to transform the structure of my original XML > document, i want to: > 1) only transform those elements that are "part of a list" (i > need to be > able to specify/restrict the selection to the elements "B" > with attributes > "C" and "D" in the example below). > 2) i want to rename the attribute of these selected elements > (so attribute > "C" will be renamed into "renamed_C", etc.) > > Is this possible?? The general approach is to write an identity template rule that copies elements across unchanged: <xsl:template match="*"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> and then add an overriding rule for elements that you want to modify, e.g. to rename attribute C of element B do <xsl:template match="B"> <xsl:copy> <xsl:copy-of select="@* except C"/> <!-- this is XPath 2.0 syntax --> <xsl:attribute name="renamed_C"><xsl:value-of select="@C"/></xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template> Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] how to rename attributes and , bvhest.freeler.nl | Thread | RE: [xsl] how to rename attributes , Andrew Welch |
RE: [xsl] Navigating through the do, Michael Kay | Date | RE: [xsl] xsl:number and conditiona, Michael Kay |
Month |