xsl-list
[Top] [All Lists]

Re: [xsl] Whitelist preceding siblings

2011-04-15 08:56:06

match="x[not(preceding-sibling::*[not(self::A|self::B|self::C])]"

or if you prefer

match="x[every $p in preceding-sibling::* satisfies $p/(self::A | self::B | self::C)]"

Michael Kay
Saxonica

On 15/04/2011 14:43, Fredrik Bengtsson wrote:
Hi,

I need to select elements (using XPath) that are preceded by sibling elements 
that are not in a given whitelist. That is, I need to find elements named x, 
whose preceding siblings (if any) are all named a, b or c, in any order, and 
all optional, but nothing else. So the following is a match:

<c/>
<b/>
<x/>

And so is this:

<x/>

But not this one:

<c/>
<BLOCKER/>
<a/>
<x/>

I've tried something like the following with no luck:

<xsl:template match="x">  ...
<xsl:template match="x[preceding-sibling::*][not(self::a or self::b or 
self::c)]">  ...

Any ideas?
Regards,
/Fredrik


--~------------------------------------------------------------------
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>
--~--




--~------------------------------------------------------------------
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>