xsl-list
[Top] [All Lists]

RE: XHTML to XHTML transform

2004-04-02 13:32:05
-----Original Message-----
From: Jeffrey Moss [mailto:jeff(_at_)opendbms(_dot_)com]

<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



<Prev in Thread] Current Thread [Next in Thread>