xsl-list
[Top] [All Lists]

RE: how to rename attributes and restrict selection?

2005-05-31 15:03:42
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/



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>