RE: [xsl] template matching

Subject: RE: [xsl] template matching
From: Peter Flynn <pflynn@xxxxxx>
Date: Fri, 06 Feb 2004 14:04:01 +0000
On Thu, 2004-02-05 at 15:52, Varley, Roger wrote:
> > 
> > On Wed, 2004-02-04 at 14:51, Varley, Roger wrote:
> > > > 
> > > > <xsl:template match="//note">
> > > >   <li>
> > > >     <xsl:apply-templates/>
> > > >   </li>
> > > > </xsl:template>
> > > > 
> > > 
> > > Oh rats! Just when I thought I'd got my head around XSLT. 
> > 
> > Gin and tonic required?
> > 
> > > Would you explain why this works, in particular why it prints only
> > > the values of the <note> elements 
> > 
> > Because that's what it says it will do. The template
> > will match every note in the document, at any depth
> > or location, and for each one, output a LI element
> > containing the value of the note.
> 
> Sorry - I wasn't being very clear. I was suprised to get output without an <xsl:value-of select="."/>

The default (in the absence of any matching template) is to output the
content. value-of is useful for out-of-line processing, or putting a 
value in more than one place in the output tree, or handling attributes.
It's not needed when all you want is the default: the character data
content.

> > 
> > > and no blank lines for the <sub1> <sub2 .... elements 
> > 
> > Because there's nothing there to do that. Where did you
> > want space to appear? 
> > 
> 
> I was expecting the standard default template to be invoked for the <sub1> <sub2> elements because there is no template provided to match them.

What is the "standard default template" you refer to? If you mean the
one I just mentioned, then it *is* being invoked...just that there is
nothing to output, only further elements to match.

///Peter



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


Current Thread