[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: default attribute values?

Subject: RE: default attribute values?
From: "Hunsberger, Peter" <Peter.Hunsberger@xxxxxxxxxx>
Date: Fri, 2 Aug 2002 11:11:34 -0500
xsl default value
>I'm afraid not, in that case you'll have to use an xsl:if or xsl:choose
>block:
>
>        <input>
>          <xsl:attribute name="name">
>            <xsl:choose>
>              <xsl:when test="@gunk"><xsl:value-of
>select="@gunk"/></xsl:when>
>              <xsl:otherwise>default</xsl:default>
>            </xsl:choose>
>          </xsl:attribute>
>          <xsl:if test="@foo">
>             <xsl:attribute name="bar"><xsl:value-of
>select="@foo"/></xsl:attribute>
>          </xsl:if>
>       </input>

> This could actually be done a bit more elegantly, following the pattern 
> Peter described earlier, as so:
>
> <input name="default">
>   <xsl:apply-templates select="@gunk"/>
> </input>
>
> <xsl:template match="@gunk">
>   <xsl:attribute name="name">
>     <xsl:value-of select="."/>
>   </xsl:attribute>
> </xsl:template>
>
> In fact if you used templates instead of the copy-of, you could generalize

> this for all the attributes:
>
> <input name="default" name2="default2">
>    <xsl:apply-templates select="@*"/>
> </input>
>
> <xsl:template match="node/@*">
>   <xsl:copy-of select="."/>
> </xsl:template>
> 
> <xsl:template match="@gunk" priority="1">
>    <xsl:attribute name="name">
>      <xsl:value-of select="."/>
>    </xsl:attribute>
> </xsl:template>
> 
> Note that on the template for the attribute whose name is changing (@gunk 
> to @name), an explicit priority is necessary to make sure that template 
> fires instead of the template that copies.

Wendell, that's a bit obscure (thus, I like it), but it probably makes sense
where you're doing a lot of attribute manipulation. In particular, if you
changed the name of a certain set of attributes on multiple different
elements.  The choose block certainly makes it more obvious what's going on
and I'd guess it's likely is more efficient for the case where you're only
flipping the name on a single attribute for a single element...?




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.