Re: [xsl] dynamically applying templates

Subject: Re: [xsl] dynamically applying templates
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 15 Sep 2004 11:46:34 -0400

Could you include a snippet of source (actually both sources) so we have a clue as to what the input looks like?

I know it should be available in my email archive, but it's scattered and I don't really have the time to patch it together. Please make it easy for me to help!

I can tell from looking at the code that you're going to have trouble here, since at the root, you apply templates in mode "bibliography", but (a) I don't know what child(ren) of the root you have (and thus what templates it would match), and (b) I see no templates here in that mode in any case.

Yet not knowing what the input looks like, it's impossible for me to say what would work.

We find it easiest to answer questions which are well-enough encapsulated to present the entire problem in a neat package. That is, reduce the problem to its essentials (important so we don't have to wade through screens and screens of code) and present the list with (a) sample source, (b) XSLT code, (c) output you're getting (so we don't have to run it ourselves and/or can diagnose whether you may be dealing with a processor bug), and (d) output you want.


At 09:04 PM 9/14/2004, you wrote:

On Sep 14, 2004, at 4:27 PM, Wendell Piez wrote:

I'm going to leave the deeper look-see for later (being rather snowed myself), if you don't mind, and hope that the correction above will confirm that you're on the right track....

I don't mind.

I'm getting closer. I now get:

<html xmlns="";>
   <div>JaneDoeMain TitleSubtitle</div>

Which suggests some of the templates are matching. But clearly not all of them are, and the crucial order business is wrong (title should come before name here). I'm guessing the problem is in one or both of the first two templates.

<xsl:variable name="style-biblio" select="$styles/cs:citationstyle/cs:content/cs:bibliography"/>

<xsl:template match="/">
  <xsl:param name="source"/>
      <xsl:apply-templates mode="bibliography">
        <xsl:with-param name="source" select="$style-biblio"/>

<xsl:template match="cs:entry/cs:reftype[@name='book']" mode="bibliography">
  <xsl:param name="source"/>
      <xsl:with-param name="source" select="$source"/>

<xsl:template match="cs:title">
  <xsl:param name="source"/>
  <xsl:apply-templates select="$source/mods:titleInfo" mode="full"/>

<xsl:template match="mods:titleInfo" mode="full">
  <span class="title">
    <xsl:apply-templates select="mods:title"/>
    <xsl:apply-templates select="mods:subTitle"/>

<xsl:template match="cs:creator" mode="full">
  <xsl:param name="source"/>
  <xsl:apply-templates select="$source/mods:name" mode="full"/>

<xsl:template match="mods:name" mode="full">
  <span class="creator">
    <xsl:apply-templates select="mods:namePart"/>

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