Fw: [xsl] Template matching with multiple namespaces

Subject: Fw: [xsl] Template matching with multiple namespaces
From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Fri, 20 Mar 2009 09:41:57 +0100
> I think this would work:
>
> <xsl:apply-templates select=".//*:LandXML" />

It does not work for xsltproc:
$ xsltproc a.xsl
Error xpath.c:10147: Invalid expression
.//*:LandXML
    ^
compilation error: file a.xsl line 17 element apply-templates
xsl:apply-templates : could not compile select expression './/*:LandXML'
$


"local-name(.)='LandXML'" works fine for <xsl:when test=...>.
It does work neither for <template match=...> nor for <xsl:apply-templates
select=...> ...


Mit besten Gr|_en / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler
WebSphere DataPower SOA Appliances
----- Forwarded by Hermann Stamm-Wilbrandt/Germany/IBM on 03/20/2009 09:33
AM -----

             Jeff Sese
             <jeferson.sese@as
             iatype.com>                                                To
                                       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
             03/20/2009 06:54                                           cc
             AM
                                                                   Subject
                                       Re: [xsl] Template matching with
             Please respond to         multiple namespaces
             xsl-list@xxxxxxxx
              lberrytech.com








I think this would work:

<xsl:apply-templates select=".//*:LandXML" />

This will apply to all elements that has a local name of LandXML

-- Jeff

On 03 20, 09, at 11:18 AM, Tony Rowe wrote:

> Hi,
>
> I have a stylesheet which works with one namespace, prefix say
> 'lml'. I
> now want the same stylesheet to work on documents under another
> namespace, say lml10.
>
> Here is my namespace defs...
>
> <xsl:stylesheet version="1.0"
> xmlns:lml=...
> xmlns:lml10=...
> xmlns:msxsl=...
> xmlns:xsl="...
>>
>
> Now the stylesheet does, of course match nodes such as
>
> <xsl:apply-templates select=".//lml:LandXML" />
>
> But I want it to also match on
>
> <xsl:apply-templates select=".//lml10:LandXML" />.
>
> How can I set up some variable to allow me not to have to duplicate
> code?
>
> This doesn't work...NodeTest expected.
> <xsl:apply-templates select=".//{$namespacevariable}:LandXML" />
>
> Or is there a better way to get the one stylesheet to work over
> multiple
> namespaces?
>
> I am using XSLT 1.0 still because I need to use the MSXML parser 6.0.
>
> Tony
>

Jeferson L. Sese
jeferson dot sese at asiatype dot com
Asiatype Inc.
Suite 114 Columbia Tower
Ortigas Ave., Greenhills
Mandaluyong City 1550 Philippines
Tel: +632-744-6262
Mobile: +63927-671-7901

Current Thread