RE: [xsl] template never matches

Subject: RE: [xsl] template never matches
From: "Merrilees, David" <David.Merrilees@xxxxxxxxxxxx>
Date: Tue, 22 Feb 2011 13:20:32 +0000
Oh yeah, heh, silly me.

Hi Andrew, hope all is well.

Thanks all

-----Original Message-----
From: Andrew Welch [mailto:andrew.j.welch@xxxxxxxxx]
Sent: 22 February 2011 13:07
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Cc: Merrilees, David
Subject: Re: [xsl] template never matches

On 22 February 2011 12:39, Merrilees, David <David.Merrilees@xxxxxxxxxxxx>
wrote:
> Hi
>
> I'm having trouble matching a named element vs using node(). Code below. Any
bright ideas?
>
> Example input:
>
> <?xml version="1.0" encoding="utf-8"?> <html>
>  <head>
>    <title>Vmtejte</title>
>    <meta charset="utf-8"/>
>  </head>
>  <body id="home">
>  </body>
> </html>


>        <xsl:template match="node() | @*" mode="test">
>                <!-- always matched -->
>                <xsl:sequence select="." />
>        </xsl:template>

That will match <html> and then effectively copy the whole input tree to the
output...  you need to call apply-templates:


        <xsl:template match="/">
                <xsl:apply-templates mode="test"/>
        </xsl:template>

        <xsl:template match="node() | @*" mode="test">
                <xsl:copy>
                        <xsl:apply-templates select="@* | node()"
mode="#current"/>
                </xsl:copy>
        </xsl:template>

        <xsl:template match="head" mode="test">
                <xsl:copy>
                        <xsl:apply-templates select="@* | node()" mode="test"
/>
                        <link rel="shortcut icon" href="/favicon.ico" />
                </xsl:copy>
        </xsl:template>


--
Andrew Welch
http://andrewjwelch.com


This is a confidential email. Tesco may monitor and record all emails. The
views expressed in this email are those of the sender and not Tesco.

Tesco Stores Limited
Company Number: 519500
Registered in England
Registered Office: Tesco House, Delamare Road, Cheshunt, Hertfordshire EN8
9SL
VAT Registration Number: GB 220 4302 31

Current Thread