RE: [xsl] XHTML to XHTML transform

Subject: RE: [xsl] XHTML to XHTML transform
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Fri, 2 Apr 2004 22:32:05 +0200
> -----Original Message-----
> From: Jeffrey Moss [mailto:jeff@xxxxxxxxxxxx]
>
<snip />
> Well now you bring up some great points, what if I name my <box> element
> <mynamespace:box> ???
> Does that make things easier?
>

Hmm.. this is indeed definitely going to make it a lot easier. Personally, I
find it a lot more aesthetically pleasing ;)

> The solution I came up with is to use parameters wherever
> possible, since I
> wont need the empty template solution for that (although the option is
> available if I ever want to use text nodes...).
> but using the match *[namesapce-uri()='http://www.w3.org/1999/xhtml'] it
> looks like I could only apply the copy template to elements not in the
> "mynamespace:" namespace... is that right?
>

Yes. Say the uri for mynamespace:* is defined as

xmlns:mynamespace="my:namespace"

Then you can do:

<xsl:template match="*[not(namespace-uri()='my:namespace']" />

The downside is that, if you *do* need to access the nodes for their
content, you'll have to use either the fully qualified (prefixed)
'mynamespace:name/...', or do it like '*[local-name()="name"]/...', but this
could be worked around/eased up a bit if you define a variable or a key for
those elements. As an example:

<xsl:key name="myns-nodes" match="*[namespace-uri()='my:namespace']"
         use="local-name()" />

to acces a certain 'name' node in mynamespace: you can use

key('myns-nodes','name')[{predicate-here}]

Numerous possibilities..


Hope this helps!


Cheers,

Andreas

Current Thread