xsl-list
[Top] [All Lists]

RE: self::x:* in XPath 2.0

2004-07-13 06:33:13
Just write 

   if ($e/self::x:*)

or if you prefer

   if ($e[self::x:*])

Michael Kay 

-----Original Message-----
From: ben(_dot_)pickering(_at_)marketing(_dot_)net(_dot_)uk 
[mailto:ben(_dot_)pickering(_at_)marketing(_dot_)net(_dot_)uk] 
Sent: 13 July 2004 13:55
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] self::x:* in XPath 2.0

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

--+------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--





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