xsl-list
[Top] [All Lists]

Re: [xsl] Confusing namespaces and xslt

2008-10-02 17:03:39

When I added those modes I saw nothing in the output, i.e. it was
almost as if the template didn't match. When I removed them then I'd
get a match.

a template in a mode (just as a template in the default unnamed mode)
has no effect unless you apply templates in that mode to a node that
matches the template, so most likely you didn't apply templates at the
right point (but it's hard to guess given no information).

If you have lots of elements that you want to add after lots of
different elements you'd do something like

  <xsl:template match="@* | node()">
   <xsl:copy>
     <!-- Everything here (inside <xsl:copy>) only applies to elements -->
     <xsl:apply-templates select="@*"/>
     <xsl:apply-templates mode="content" select="."/>
     <xsl:apply-templates mode="append" select="."/>
   </xsl:copy>
   <xsl:apply-templates mode="after" select="."/>
  </xsl:template>

then by default you'd want nothing added after things so

  <xsl:template match="@* | node()" mode="after"/>

but if you want to add something after box you'd do

<xsl:template mode="after" match="box">
 <tape/>
</xsl:template>


Note in this form you don't need to repeat the "standard processing" for
the box element.

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

--~------------------------------------------------------------------
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>