Re: [xsl] Passing Elements to templates...

Subject: Re: [xsl] Passing Elements to templates...
From: Mike Brown <mike@xxxxxxxx>
Date: Mon, 3 Jun 2002 12:49:16 -0600 (MDT)
CROFT, MICHAEL wrote:
> Is there a way to pass an entire element, with all its children to a
> template.  Then, within that template which it was passed to, specifically
> extract certain elements to display the text?

You can pass an object of any type, including node-set, to a template as a
parameter. If passing a node-set, it is usually the case that you pass just
the one element node; you can use XPath expressions to obtain its descendants
and attributes. 

  <xsl:template match="foo">
    <xsl:apply-templates select="path/to/some/coolNodes">
      <xsl:with-param name="aNodeSet" select="some/foo/descendant"/>
    </xsl:apply-templates>
  </xsl:template>

  <xsl:template match="coolNodes">
    <xsl:param name="aNodeSet" select="/.."/> <!-- default: empty set -->
    <xsl:text>&#10;number of nodes in aNodeSet: </xsl:text>
    <xsl:value-of select="count($aNodeSet)"/>
    <xsl:text>&#10;number of child elements of all of those nodes: </xsl:text>
    <xsl:value-of select="count($aNodeSet/*)"/>
  </xsl:template>

Is there a particular problem you are having?

   - Mike
____________________________________________________________________________
  mike j. brown                   |  xml/xslt: http://skew.org/xml/
  denver/boulder, colorado, usa   |  resume: http://skew.org/~mike/resume/

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


Current Thread