| Subject: Re: [xsl] Copy Attribute Unless From: Alan <alan-xsl-list@xxxxxxxxx> Date: Fri, 25 Mar 2005 12:40:12 -0500 | 
* Alan <alan-xsl-list@xxxxxxxxx> [2005-03-25 12:27]:
>     In my expand.xslt I have a template like so...
> 
>     <xsl:template match="control">
>       <xsl:variable name="definition"
>                     select="ancestor::bench/fixture/control-point[
>                                           @name = current()/@name]"/>
>       <xsl:copy>
>         <xsl:copy-of select="@*"/>
>         <xsl:if test="not(@trim)">
>           <xsl:copy-of select="$defition/@trim"/>
>         </xsl:if>
>         <xsl:if test="not(@class)">
>           <xsl:copy-of select="$defition/@class"/>
>         </xsl:if>
>         <!--| Repeat for every attribute I add. |-->
>       </xsl:copy>
> 
>     </xsl:template>
>     My question... Is there a clever select statement that could
>     "copy all the attributes, and all the definition attributes,
>     unless they are already definied in the test instance."
    The following works in Saxon 8.0. I assumed it was bad news to
    specify an attribute twice, but I suppose the last attribute
    node copied wins.
    <xsl:template match="control">
      <xsl:variable name="definition"
                    select="ancestor::bench/fixture/control-point[
                                          @name = current()/@name]"/>
      <xsl:copy>
        <xsl:copy-of select="$definition/@*"/>
        <xsl:copy-of select="@*"/>
      </xsl:copy>
    </xsl:template>
--
Alan Gutierrez - alan@xxxxxxxxx
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| [xsl] Copy Attribute Unless, Alan | Thread | RE: [xsl] Copy Attribute Unless, Michael Kay | 
| Re: [xsl] how red ampersand from th, henry human | Date | Re: [xsl] how red ampersand from th, Joe Fawcett | 
| Month |