RE: [xsl] Matching all elements in a namespace

Subject: RE: [xsl] Matching all elements in a namespace
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Sat, 7 Feb 2004 21:42:11 -0000
> 
> So, the obvious thing felt like something like...: 
> <xsl:template match="namespace-uri() = 
> 'http://www.w3.org/TR/xhtml1/strict'">
> 	      <xsl:copy-of select="."/>
> </xsl:template>
> 
> ...and I've tried numerous variations over this theme over the past 
> couple of weeks, but it doesn't "work". 

When the obvious thing doesn't work, the time has come to read the spec.

You can match all elements in a namespace by writing

<xsl:template
match="*[namespace-uri()='http://www.w3.org/TR/xhtml1/strict']"

or by

<xsl:template match="xhtml:*"
xmlns:xhtml="http://www.w3.org/TR/xhtml1/strict";>

Note that this doesn't require the elements in the source document to
use the same prefix.

Whether <xsl:copy-of> is really what you want to do inside the template
rather depends on details of the requirement, which you haven't
explained very fully.

Michael Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread