select="a[following-sibling::node()[normalize-space() or self::*][1][self::a]]"
First all non-whitespace-character text nodes and all elements are selected. From these one the first one is tested to be an <a/>.
Regards,
Joerg
Anna Afonchenko wrote:
Thanks for answering I agree that my expression is not the cleanest, but it doesn't work in cocoon anyway :-( I can't understand, why it is so hard to express some not-so-difficult conditions. I am trying to select all a nodes that are followed by another a node without anything in between, except white spaces. I understand that my problem is white spaces that are not ignored in any parser except for MSXML. Example: for <a /> <a/> or <a/><a/> I want my expression to pick the first a. for <a/>text<a/> or <a/><br/><a/> I do not want my expression to pick the a.
I don't want to ignore any text nodes, just the whitespace-only ones. Expression //a[following-sibling::*[1][self::a]] will select also a nodes woth some simple text in between, and I do not want it. I don't believe that this should be that complicated, but the fact is that I cannot manage to construct the expression that will choose exactly what I need, no more, no less.
Sorry to drag this thread for so long, but maybe you can help me a little bit more with this and help me to find the right expression that will work in Cocoon?
Thank you very very much for help. I appreciate it very much.
Anna ----- Original Message ----- From: "J.Pietschmann" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, February 24, 2003 9:21 PM Subject: Re: XPath problems in Cocoon?
Anna Afonchenko wrote:
But when I tried to apply this stylesheet using cocoon, I still got the empty root element <root/ as a result.
That's because strip-space doesn't apply if the input is delivered through a SAX pipeline (although the spec is a bit ambiguous about this.
Actually, your expression is ugly. What's wrong with select="a[following-sibling::*[1][self::a]]" This means "select a elements where the following element (disregarding any text node) is also an a element." This is not quite equivalent to your expression but will give the same result for your XML source, and it will work regardless whether whitespace nodes are stripped. There's half a zillion other possibilities to express the same or similar conditions. If you give a description of the effect you want to achieve, a proper expression can be formulated.
J.Pietschmann
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]