Regardless of the better performance gained from the previous answers i
would expect your query to work.
Just tested this in the QConsole and it returned as expected
let $doc := document { <catalog>
<product dept="WMN">
<number>557</number>
<name language="en">Fleece Pullover</name>
<colorChoices>navy black</colorChoices>
</product>
<product dept="ACC">
<number>563</number>
<name language="en">Floppy Sun Hat</name>
</product>
<product dept="ACC">
<number>443</number>
<name language="en">Deluxe Travel Bag</name>
</product>
<product dept="MEN">
<number>784</number>
<name language="en">Cotton Dress Shirt</name>
<colorChoices>white gray</colorChoices>
<desc>Our <i>favorite</i> shirt!</desc>
</product>
</catalog>
}
for $i in $doc/catalog/product/name
where $i/../@dept = 'WMN'
return $i;
--> <name language="en">
Fleece Pullover
</name>
Regards,
Johan
On Mon, Jun 29, 2015 at 7:58 AM Indrajeet Verma <[email protected]>
wrote:
> Hi Zise,
>
> Use below query to avoid any loop or don't want any order by,
>
> collection('http://marklogic.com/xdmp/test')/catalog/product[@dept =
> 'WMN']/name
>
> However I would suggest to use of cts queries for the better response time.
>
> Regards,
> Indy
>
> On Mon, Jun 29, 2015 at 11:18 AM, Asit Nautiyal <[email protected]>
> wrote:
>
>> Hi Zise,
>>
>> Use the predicate in where condition. Please find the below code :
>>
>>
>> for $i in collection('SAMPLE')/catalog/product/name
>> where $i/..[@dept = 'WMN']
>> return $i
>>
>>
>> Regards,
>> Asit Nautiyal
>> ------------------------------
>> Date: Mon, 29 Jun 2015 09:25:48 +0800
>> From: [email protected]
>> To: [email protected]
>> Subject: [MarkLogic Dev General] Can anyone tell me why the result of the
>> second xqery is empy?
>>
>> There is one XML document stored in my database, the content of the XML
>> document is:
>> <catalog>
>> <product dept="WMN">
>> <number>557</number>
>> <name language="en">Fleece Pullover</name>
>> <colorChoices>navy black</colorChoices>
>> </product>
>> <product dept="ACC">
>> <number>563</number>
>> <name language="en">Floppy Sun Hat</name>
>> </product>
>> <product dept="ACC">
>> <number>443</number>
>> <name language="en">Deluxe Travel Bag</name>
>> </product>
>> <product dept="MEN">
>> <number>784</number>
>> <name language="en">Cotton Dress Shirt</name>
>> <colorChoices>white gray</colorChoices>
>> <desc>Our <i>favorite</i> shirt!</desc>
>> </product>
>> </catalog>
>>
>> when i execute the follow xquery :
>> for $i in collection('http://marklogic.com/xdmp/test')/catalog/product
>> where $i/@dept = 'WMN'
>> return $i/name;
>> the result is:
>> <name language="en">
>> Fleece Pullover
>> </name>
>> But, if i use the follow xquery to do the same thing, the result will be
>> empty
>>
>> for $i in collection('
>> http://marklogic.com/xdmp/test')/catalog/product/name
>> where $i/../@dept = 'WMN'
>> return $i;
>>
>> Can anyone tell me why the result of second xqery is empy?
>>
>>
>>
>> _______________________________________________ General mailing list
>> [email protected] Manage your subscription at:
>> http://developer.marklogic.com/mailman/listinfo/general
>>
>> _______________________________________________
>> General mailing list
>> [email protected]
>> Manage your subscription at:
>> http://developer.marklogic.com/mailman/listinfo/general
>>
>>
> _______________________________________________
> General mailing list
> [email protected]
> Manage your subscription at:
> http://developer.marklogic.com/mailman/listinfo/general
>
_______________________________________________
General mailing list
[email protected]
Manage your subscription at:
http://developer.marklogic.com/mailman/listinfo/general