- From: Mukul Gandhi <mukul_gandhi@yahoo.com>
- Date: Sun, 20 Mar 2005 10:18:38 -0800 (PST)
- To: www-ql@w3.org
Hi Sergio, Probably this XQuery is required.. <Results> { for $A in doc("data.xml")/ASet/A where ($A/B = "red" or $A/B = "yellow") and ($A/C = "chair" or $A/C = "table") return <A> {$A/@*} {$A/B[(. = 'red') or (. = 'yellow')]} {$A/C[(. = 'chair') or (. = 'table')]} </A> } </Results> Regards, Mukul --- Sergio Andreozzi <sergio.andreozzi@cnaf.infn.it> wrote: > > Dear all, > > I'm wondering what is the best way to prune subtrees > that did not match > the where clause of a FLOWER expression. See the > example below for > clarification: > > SAMPLE DATA > > <ASet> > <A name="one"> > <B>red</B> > <B>yellow</B> > <B>green</B> > <C>chair</C> > <C>table</C> > <C>sofa</C> > </A> > <A name="two"> > <B>red</B> > <B>green</B> > <C>chair</C> > <C>sofa</C> > </A> > <A name="three"> > <B>green</B> > <C>chair</C> > <C>table</C> > <C>sofa</C> > </A> > </ASet> > > QUERY: for each A, list all the name of A, their B > elements that are > either "red" or "yellow" and their C elements that > are either "chair" or > "table" > > EXPECTED RESULT: > > <Results> > <A name="one"> > <B>red</B> > <B>yellow</B> > <C>chair</C> > <C>table</C> > </A> > <A name="two"> > <B>red</B> > <C>chair</C> > </A> > </Results> > > > in practice what I would like to understand is how > to prune all the > subtrees that do not contain any match with > components of the WHERE > clause in the XQuery result. > > The general pruning rule is "if an element does not > participate in the > satisfaction of the WHERE clause and all its > children elements (if any) > don't participate as well, then prune it from the > result". > > A possible starting point is the following query, > but the pruning action > is missing. > > <Results> > { > for $A in doc("data.xml")/ASet/A > where ($A/B = "red" or $A/B = "yellow") > and ($A/C = "chair" or $A/C = "table") > return ... > } > </Results> > > > > Thanks, > > Sergio __________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/
Received on Sunday, 20 March 2005 18:19:55 UTC