Creating New Attributes

Just as you can create new elements with <xsl:element> and set the element name and content under programmatic control, you can do the same for attributes using the <xsl:attribute> element.

Here's an example. In this case, I'm creating new <PLANET> elements with attributes corresponding to the various planet names and values taken from the COLOR attribute in the original <PLANET> elements:

Listing ch13_19.xsl
 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="PLANETS">     <HTML>         <HEAD>             <TITLE>                 Planets             </TITLE>         </HEAD>         <BODY>             <xsl:apply-templates select="PLANET"/>         </BODY>     </HTML> </xsl:template> <xsl:template match="PLANET">  <PLANET>   <xsl:attribute name="{NAME}">   <xsl:value-of select="@COLOR"/>   </xsl:attribute>   </PLANET>  </xsl:template> </xsl:stylesheet> 

Here are the results; as you can see, I've created new attributes on the fly, using the names of the planets:

 <HTML>  <HEAD> <TITLE>                 Planets             </TITLE> </HEAD> <BODY> <PLANET Mercury="RED"> </PLANET> <PLANET Venus="WHITE"> </PLANET> <PLANET Earth="BLUE"> </PLANET> </BODY> </HTML> 


Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net