xsl-list
[Top] [All Lists]

Re: [xsl] Pattern notation for preceding-sibling

2014-08-11 06:31:57
I would write

/foo/E/preceding-sibling::*[self::A | self::N]

If A and N have something in common that leads to this kind of expression being 
meaningful, then in a schema-aware world it's quite likely that you can make 
them members of the same substitution group G, in which case you can write

/foo/E/preceding-sibling::schema-element(G)

And another possibility is

/foo/E/preceding-sibling::*[not(self::B)]

Michael Kay
Saxonica
mike(_at_)saxonica(_dot_)com
+44 (0) 118 946 5893




On 11 Aug 2014, at 10:49, Heiko Niemann kontakt(_at_)heiko-niemann(_dot_)de 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi,

a rather basic question, but I was not able to find samples/answers for it
yet.

Elements A,B,B,N,E,B,C are contained in element foo.

/foo/E/preceding-sibling::* will return A,B,B,N;

/foo/E/preceding-sibling::N will return N;  - easy -


Now I want A,N to be returned, so my first guess is, that this might work:

/foo/E/preceding-sibling::(A,N)

But it does not, so I either have to write

/foo/E/(preceding-sibling::A, preceding-sibling::N) or

/foo/E/*[name() = ('A','N')]


So, is there a (short) notation that I missed so far, that does what I
expected /foo/E/preceding-sibling::(A,N) to do?


Regards,
Heiko

--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

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