Re: [xsl] Template doesn't seem to match

Subject: Re: [xsl] Template doesn't seem to match
From: Syd Bauman <Syd_Bauman@xxxxxxxxx>
Date: Mon, 9 Jul 2012 15:05:08 -0400
Presuming your match= attributes say what you want (rather than the
prose that implies you want to match on the child of the
<SubSection>), I suspect all would work if you put explicit priority=
attributes on 'em:
  <xsl:template match="SubSection[@filter='filter1']" priority="4">
  <xsl:template match="SubSection[*[@filter='filter1']]" priority="3">
  <xsl:template match="SubSection" priority="2">

Not sure, but it's certainly worth a try.

> I have a couple of templates that i thought would handle things but
> they seem to be working wrong, but i know it must be something i am
> missing.
> 
> The first template:
> 
> <xsl:template match="SubSection[@filter='filter1']" priority="1">
>         <SubSection>
>             <xsl:copy-of select="./Title"/>
>             <xsl:processing-instruction name="xm-insertion_mark_start"> author="x0167021" time="20120629T115628-0600"</xsl:processing-instruction>
>             <Para>This subsection contains only NDA content and is not available in the public domain.</Para>
>             <xsl:processing-instruction name="xm-insertion_mark_end"/>    
>         </SubSection>
> 
>     </xsl:template>
> 
> matches a SubSection element that has a filter attribute set to
> 'filter1', and outputs a Para element saying that entire element is
> an NDA only section.
> 
> The second template:
> 
> 
> <xsl:template match="SubSection[*[@filter='filter1']]">
>         <SubSection>
>             <xsl:apply-templates/>
>         </SubSection>
>     </xsl:template>
> 
> matches a SubSection element that contains any element having a
> filter attribute set to 'filter1', if so continue processing.
> 
> The third template i think should work, but isn't completely. This
> template should return any remaining SubSection elements, and all
> that are left at this time, i would think, would be those that have
> no NDA content.
> 
> <xsl:template match="SubSection">
>         <SubSection>
>             <xsl:copy-of select="./Title"/>
>             <Para>This Subsection does not contain any NDA content.</Para>
>             <xsl:apply-templates select="SubSection"/>
>         </SubSection>
>     </xsl:template>
> 
> 
> The problem i'm having is that i have an element, in a SubSection,
> that HAS a filter attribute set to 'filter1', but the second
> template is NOT catching it. It's getting matched in the third
> template. Shouldn't the first, second and third templates handle
> the possibilites?
> 
> I'm sure this is something i'm over looking, but i appreciate any
> help you can provide!

Current Thread