If I understood the problem correct, I think this /A/B/D/C|//B/D/C//B/D/C
Else, try rephrasing the question, Pretty difficult to understand the lingo.

Sandeep Randhawa
@author XML Module for Netbeans
http://xml.netbeans.org


-----Original Message-----
From: Nikolaos Giannadakis <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Wednesday, July 04, 2001 6:08 PM
Subject: XPath riddle


>
>Dear All,
>
>Can you tell what the XPath expression that:
>"selects all C elements that come after A and have a D parent" is.
>
>That is, there might be a schema, which declares the unwanted instances of
C
>as integers, while
>the other C declared has some anonymous complexType.
>
>
><?xml version="1.0" encoding="UTF-8"?>
><A>
> <B>
> <C/> <!-- DO NOT select this -->
> <D>
> <!-- recursion is introduced here -->
> <C> <!-- select this -->
> <B>
> <C/> <!-- DO NOT select this -->
> <D>
> <C/> <!-- select this -->
> </D>
> </B>
> </C>
> </D>
> </B>
></A>
>
>
>/A//D/C (/A/descendant::D/C) would suffice, or, better, /A//B/D/C
>(/A/descendant::B/D/C). But this would not rule out the possibility of the
>B/D/C pattern appearing somewhere after A in another context. I cannot find
>any XPath feature that would handle recursion.
>
>
><?xml version="1.0" encoding="UTF-8"?>
><A>
> <B>
> <F>
> <B>
> <D>
> <C/> <!-- this would be selected incorrectly -->
> </D>
> </B>
> </F>
> <D>
> <!-- recursion is introduced here -->
> <C> <!-- select this -->
> <B>
> <C/> <!-- DO NOT select this -->
> <D>
> <C/> <!-- select this -->
> </D>
> </B>
> </C>
> </D>
> </B>
></A>
>
>Using /A/B/D/C | /A/B/D/C//B/D/C would overcome this, but you can see how I
>could create another problematic example...
>How does one find one's way around this, using a generic XPath approach?
>I am not saying this is good XML design. To the contrary! ... it is legal,
>nonetheless ...any ideas?
>
>regards,
>
>nikolas/
>



Reply via email to