Subject: RE: 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
|