|
Subject: [xsl] Re: XPath riddle From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Wed, 4 Jul 2001 21:13:18 -0700 (PDT) |
Hi Nicholas,
I cannot understand why you exclude a node in your second example -- this node
perfectly matches your definition of the result node-set.
Therefore, you have to provide another definition of the wanted result set.
> Can you tell what the XPath expression that:
> "selects all C elements that come after A and have a D parent" is.
>
(//A/following::C | //A/descendant::C)[parent::D]
> 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.
^^^^^^^^^^^^^^^^^^
??????????
What "context"? You do not define any particular "context" in your original
definition of the wanted result set. There's something you haven't told us.
Please, explain this statement.
> 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 -->
Why, it exactly matches your definition -- this is a "C" node that follows "A" and
has a "D" parent.
> </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?
Once again, could you provide a correct definition of your result set? The node you
want excluded in your second example matches exactly your definition of the result
set.
Cheers,
Dimitre Novatchev.
__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] ANN: XEP 2.5 Released, Nikolai Grigoriev | Thread | RE: [xsl] Re: XPath riddle, Nikolaos Giannadakis |
| [xsl] ANN: XEP 2.5 Released, Nikolai Grigoriev | Date | Re: [xsl] node-set, Francis Norton |
| Month |