This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Problems passing attributes


Doug,

Paul's solution is nice because if your input doesn't have a border 
attribute to copy, it avoids getting border="" in your output (which you 
might get with plain border="{@border}" in your stylesheet).

It can be further refined as follows:

<xsl:template match="table">
     <table cellspacing="0" cellpadding="0">
         <xsl:copy-of select="@border"/>
         <!-- do the table thing -->
     </table>
</xsl:template>

which can be further generalized to catch all three attributes:

<xsl:template match="table">
     <table>
         <xsl:copy-of select="@*"/>
         <!-- do the table thing -->
     </table>
</xsl:template>

-- if you want to copy them all from the input, not set them yourself.

Cheers,
Wendell

At 12:17 PM 9/28/01, Paul wrote:
>If you *always* want to emit a border attribute, and you *always* want it to
>be a numeric value (not null), here's an easy way:
>
><xsl:template match="table">
>     <table cellspacing="0" cellpadding="0" border="0">
>         <xsl:if test="@border != ''"><!-- if attribute exists and is
>non-null -->
>             <xsl:attribute name="border">
>                 <xsl:value-of select="@border"/><!-- use it's value -->
>             </xsl:attribute>
>         </xsl:if>
>         <!-- do the table thing -->
>     </table>
></xsl:template>
>
>The last attribute specified in the literal result element takes precedence
>if the same attribute name is used more than once.
>
>If you only want to emit a border attribute when a non-null one is specified
>on input, just leave the 'border="0"' out of the literal result element
>begin tag.
>
>If you don't care about emitting null border attributes, this is the most
>compact:
>     <table cellspacing="0" cellpadding="0" border="{@border}">
>         <!-- do the table thing -->
>     </table>


======================================================================
Wendell Piez                            mailto:wapiez@mulberrytech.com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
   Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]