Re: [xsl] Template matching with multiple namespaces

Subject: Re: [xsl] Template matching with multiple namespaces
From: Jeff Sese <jeferson.sese@xxxxxxxxxxxx>
Date: Fri, 20 Mar 2009 16:56:04 +0800
Try,

<xsl:apply-templates select=".//*[local-name() = 'LandXML']" />

-- Jeff

On 03 20, 09, at 4:41 PM, Hermann Stamm-Wilbrandt wrote:


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


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