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