xsl-list
[Top] [All Lists]

self::x:* in XPath 2.0

2004-07-13 05:54:35
Hi

If I had a sequence of nodes, some in the default namespace, and some in
an 'x' namespace, say:

<x:a/><b/><x:c/><d/>

In XSLT 1.x, I was doing something like:

<xsl:for-each select="*">
<xsl:choose>
<xsl:when test="self::x:*">in<xsl:when/>
<xsl:otherwise>out</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:text> shake it all about</xsl:text>

To get results looking like:

in out in out shake it all about

I'd like to be able to do the same test for an element being in 'x' using
the XPath 2.0 syntax in SAXON 8, something like:

for $e in * return
if ($e is-in-namespace('x')) then
'in'
else
'out'

How do I do this?  I can't see any way of using the self::x syntax with $e
as I did before...

Cheers,
Ben


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