Re: [xsl] dynamically applying templates

Subject: Re: [xsl] dynamically applying templates
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 16 Sep 2004 12:00:27 -0400

At 01:22 AM 9/16/2004, you wrote:
        <reftype name="book">
          <title font-style="italic" after=", "/>
            <names form="full"/>
          <origin before="(" after="), ">
            <place after=":"/>

With this template ...

<xsl:template match="cs:origin">
  <xsl:param name="source"/>
    <xsl:with-param name="source" select="."/>

As you surmised, $source should refer to the node in the mods data, not the cs data, so this should be

<xsl:template match="cs:origin">
  <xsl:param name="source"/>
    <xsl:with-param name="source" select="$source"/>

As you traverse down the branches of the cs: tree, you need to keep track of what branch of the mods: tree you were in before you jumped into the other tree, so that inside these templates you can get their data.

If we could talk this true at a whiteboard I could make this clear in a minute ... unfortunately, as I said, this processing-two-trees stuff is like XSLT on steroids.

In any case, yes ...

.... am I right that I am passing cs:origin as the source to the children, where I really need to be passing the original mods:mods source. A child looks like:

<xsl:template match="cs:place">
  <xsl:param name="source"/>
  <xsl:apply-templates select="$source/mods:originInfo/mods:place"/>

I'm not sure, but is this where tunneling should come in? And if yes, how do I actually use it in this context?

Exactly right.

Tunneling parameters would only mean that your cs:origin template need not actually declare and pass $source, so

<xsl:template match="cs:origin">

(i.e. the built-in template) would work as well as what I have above.

Bob DuCharme has a nice column about tunneling parameters on


Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.      
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: To unsubscribe, go to: or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx> --+--

Current Thread