xsl-list
[Top] [All Lists]

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

2012-07-09 14:05:31
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!

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--