Torsten,<br><br>thanks a lot<br><br>Billigo<br><br><div><span class="gmail_quote">On 8/29/06, <b class="gmail_sendername">Torsten Grust</b> &lt;<a href="mailto:grust@in.tum.de">grust@in.tum.de</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Following up on myself, the slightly modified<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //b[*/text()/tokenize(.,&quot; &quot;) = (&quot;kiwi&quot;,&quot;banana&quot;)]<br><br>should be more stable with respect to spurious white space in the sub-
<br>trees below b elements.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;--Torsten<br><br>On Aug 29, 2006, 10:44 AM, Torsten Grust wrote with possible deletions:<br>&gt; Hi,<br>&gt;<br>&gt; does<br>&gt;<br>&gt;&nbsp;&nbsp; //b[*/tokenize(.,&quot; &quot;) = (&quot;kiwi&quot;,&quot;banana&quot;)]
<br>&gt;<br>&gt; solve your problem?&nbsp;&nbsp;(It behaves as desired for the two cases you<br>&gt; give below.)<br>&gt;<br>&gt; Cheers,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;--Torsten<br>&gt;<br>&gt; On Aug 29, 2006, 10:18 AM, yix yix wrote with possible deletions:
<br>&gt;&gt; Hi,<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; My input document looks like that :<br>&gt;&gt;<br>&gt;&gt; &lt;a&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b n=&quot;1&quot;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c&gt;pea&lt;/c&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d&gt;apple&lt;/d&gt;
<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b n=&quot;2&quot;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c&gt;kiwi&lt;/c&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d&gt;banana&lt;/d&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b n=&quot;3&quot;&gt;
<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c&gt;kiwi&lt;/c&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d&gt;banana&lt;/d&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b&gt;<br>&gt;&gt; &lt;/a&gt;<br>&gt;&gt;<br>&gt;&gt; The structure is recursive : b can contain b.<br>&gt;&gt;
<br>&gt;&gt; I want to write a query to retrieve any b that contains &quot;kiwi&quot; and<br>&gt;&gt; &quot;banana&quot;, but I want to exclude the first b (with n=&quot;1&quot;) because<br>&gt;&gt; the keywords are not in its own content (c+d), but in its b
<br>&gt;&gt; child's content.<br>&gt;&gt; The query should return b2 and b3.<br>&gt;&gt;<br>&gt;&gt; This query can't go :<br>&gt;&gt;<br>&gt;&gt; for $x in //b<br>&gt;&gt; where $x[contains(., &quot;kiwi&quot;) and contains(., &quot;banana&quot;)]
<br>&gt;&gt; and not($x/c[contains(., &quot;kiwi&quot;) and contains(., &quot;banana&quot;)])<br>&gt;&gt; return&nbsp;&nbsp;&nbsp;&nbsp; $x<br>&gt;&gt;<br>&gt;&gt; because, sometimes my put could be :<br>&gt;&gt;<br>&gt;&gt; &lt;a&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b n=&quot;1&quot;&gt;
<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c&gt;pea&lt;/c&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d&gt;apple&lt;/d&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b n=&quot;2&quot;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c&gt;kiwi&lt;/c&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d&gt;banana&lt;/d&gt;
<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;e&gt;kiwi banana&lt;/e&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b n=&quot;3&quot;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c&gt;kiwi&lt;/c&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d&gt;banana&lt;/d&gt;
<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/b&gt;<br>&gt;&gt; &lt;/a&gt;<br>&gt;&gt;<br>&gt;&gt; In that case, the query should return all three b.<br>&gt;&gt;<br>&gt;&gt; Thanks for your help,<br>&gt;&gt;<br>&gt;&gt; Billig<br>&gt;&gt; _______________________________________________
<br>&gt;&gt; <a href="mailto:talk@x-query.com">talk@x-query.com</a><br>&gt;&gt; <a href="http://x-query.com/mailman/listinfo/talk">http://x-query.com/mailman/listinfo/talk</a><br>&gt;<br>&gt; --<br>&gt;&nbsp;&nbsp; | Prof. Dr. Torsten Grust&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<a href="mailto:grust@in.tum.de">grust@in.tum.de</a> |<br>&gt;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www-db.in.tum.de/~grust/">http://www-db.in.tum.de/~grust/</a> |<br>&gt;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; Database Systems - Technische Universität München (Germany) |
<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; <a href="mailto:talk@x-query.com">talk@x-query.com</a><br>&gt; <a href="http://x-query.com/mailman/listinfo/talk">http://x-query.com/mailman/listinfo/talk
</a><br>&gt;<br><br>--<br>&nbsp;&nbsp; | Prof. Dr. Torsten Grust&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:grust@in.tum.de">grust@in.tum.de</a> |<br>&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www-db.in.tum.de/~grust/">http://www-db.in.tum.de/~grust/
</a> |<br>&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; Database Systems - Technische Universität München (Germany) |<br><br><br><br><br></blockquote></div><br>